std::ranges::reserve_hint
From cppreference.com
| 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
| This section is incomplete Reason: no 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) |
| specifies that a range can estimate its size in constant time (concept) |