Namespaces
Variants
Views
Actions

std::ranges::reserve_hint

From cppreference.com
< cpp‎ | ranges
 
 
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.

[edit] 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

[edit] Example

[edit] See also

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