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