40 bool throw_if_not_found =
true )
const;
44 bool throw_if_not_found =
true )
const;
52 template <
typename... X>
54 {
return std::make_tuple( x... ); }
58 {
return std::end( t ); }
60 template <
typename T,
typename... X>
64 template <
typename OBJ_TYPE,
typename OBJ_ID_TYPE,
typename INDEX_TYPE,
typename T,
typename... X >
67 const INDEX_TYPE& idx,
73 const auto configured_limit =
_app_options->*app_opt_member_ptr;
74 uint64_t limit = olimit.
valid() ? *olimit : configured_limit;
76 "limit can not be greater than ${configured_limit}",
77 (
"configured_limit", configured_limit) );
79 vector<OBJ_TYPE> results;
81 OBJ_ID_TYPE start_obj_id = ostart_id.
valid() ? *ostart_id : OBJ_ID_TYPE();
87 results.reserve( limit );
88 while( lower_itr != upper_itr && results.size() < limit )
90 results.emplace_back( *lower_itr );