Namespaces
Variants

std::ranges:: reserve_hint

From cppreference.net
Ranges library
Range adaptors
Defined in header <ranges>
Defined in header <iterator>
inline namespace /* unspecified */ {

inline constexpr auto reserve_hint = /* unspecified */ ;

}
(since C++26)
(customization point object)
Call signature
template < class T >

requires /* see below */

constexpr auto reserve_hint ( T && t ) ;
(since C++26)

Estimates the number of elements in t in constant time.

Given the subexpression of which t denotes the (possibly materialized ) result object as E , and the type of E as T :

  • If ranges:: size ( E ) is a valid expression, ranges :: reserve_hint ( E ) is expression-equivalent to ranges:: size ( E ) .
  • Otherwise, if auto ( t. reserve_hint ( ) ) is a valid expression of integer-like type , ranges :: reserve_hint ( E ) is expression-equivalent to auto ( t. reserve_hint ( ) ) .
  • Otherwise, if all following conditions are satisfied, then ranges :: reserve_hint ( E ) is expression-equivalent to auto ( reserve_hint ( t ) ) :
    • T is a class or enumeration type.
    • auto ( reserve_hint ( t ) ) is a valid expression of integer-like type, where the meaning of reserve_hint is established as if by performing argument-dependent lookup only.
  • Otherwise, ranges :: reserve_hint ( E ) is ill-formed.

Diagnosable ill-formed cases above result in substitution failure when ranges :: reserve_hint ( E ) appears in the immediate context of a template instantiation.

Contents

Customization point objects

The name ranges::reserve_hint denotes a customization point object , which is a const function object of a literal semiregular class type. See CustomizationPointObject for details.

Notes

Whenever ranges :: reserve_hint ( e ) is valid for an expression e , the return type is integer-like .

Feature-test macro Value Std Feature
__cpp_lib_ranges_reserve_hint 202502L (C++26) ranges::reserve_hint

Example

See also

returns an integer equal to the size of a range
(customization point object)
returns a signed integer equal to the size of a range
(customization point object)
specifies that a range can estimate its size in constant time
(concept)