From cppreference.com
template<classT>conceptapproximately_sized_range=ranges::range<T>&&requires(T&t){ranges::reserve_hint(t);};(since C++26)The approximately_sized_range concept specifies the requirements of a
type that can estimate its size in constant time with the reserve_hint function.
Semantic requirements
Given an lvalue t of type std::remove_reference_t<T>, T models approximately_sized_range only if
ranges::reserve_hint(t)
has amortized constant-time complexity,
does not alter the value of t in a manner observable to
expressions, and
has a value that is not negative and is representable in ranges::range_difference_t<T>, and
if ranges::iterator_t<T> models
, ranges::reserve_hint(t) is well-defined regardless of the evaluation of ranges::begin(t) (in other words, a single-pass approximately sized range may support a call to reserve_hint only before the first call to begin, but a forward range must support size at all times).
Notes
macroValueStdFeature
(C++26)ranges::approximately_sized_rangeExample
See also