51void CursorResultSet<T>::
ForEach(RowCallback&& row_callback) && {
52 using IntermediateStorage = std::vector<T>;
54 bool keep_going =
true;
55 impl::TypedExtractor<T,
RowTag> extractor{*result_set_.pimpl_};
58 keep_going = result_set_.FetchResult(extractor, batch_size_);
60 IntermediateStorage data{extractor.ExtractData()};
61 for (
auto&& row : data) {
62 row_callback(std::move(row));