std::ranges::reserve_hint
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 toranges::size(E). - Otherwise, if
auto(t.reserve_hint())is a valid expression of integer-like type,ranges::reserve_hint(E)is expression-equivalent toauto(t.reserve_hint()). - Otherwise, if all following conditions are satisfied, then
ranges::reserve_hint(E)is expression-equivalent toauto(reserve_hint(t)):-
Tis a class or enumeration type. -
auto(reserve_hint(t))is a valid expression of integer-like type, where the meaning ofreserve_hintis 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.
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
|
(C++20) | returns an integer equal to the size of a range (customization point object) |
|
(C++20) | returns a signed integer equal to the size of a range (customization point object) |
|
(C++26) | specifies that a range can estimate its size in constant time (concept) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/ranges/reserve_hint