std::ranges::reserve_hint
Определено в заголовочном файле <ranges> | ||
|---|---|---|
Определено в заголовочном файле <iterator> | ||
inline namespace /* unspecified */ {
inline constexpr auto reserve_hint = /* unspecified */;
}
| (начиная с C++26) (объект точки настройки) | |
| Сигнатура вызова | ||
template< class T >
requires /* see below */
constexpr auto reserve_hint( T&& t );
| (начиная с C++26) |
Оценивает количество элементов в t за постоянное время.
Пусть t обозначает подвыражение, результатом которого является (возможно, материализованный) объект результата, обозначенный как E, а тип E — T:
- Если
ranges::size(E)является допустимым выражением,ranges::reserve_hint(E)эквивалентно выражениюranges::size(E). - В противном случае, если
auto(t.reserve_hint())является допустимым выражением целочисленного типа,ranges::reserve_hint(E)эквивалентно выражениюauto(t.reserve_hint()). - В противном случае, если выполнены все следующие условия,
ranges::reserve_hint(E)эквивалентно выражениюauto(reserve_hint(t)):-
Tявляется типом класса или перечисления. -
auto(reserve_hint(t))является допустимым выражением целочисленного типа, причём смыслreserve_hintопределяется так, как если бы выполнялся только поиск, зависящий от аргументов.
-
- В противном случае
ranges::reserve_hint(E)некорректно.
Диагностируемые некорректные случаи, описанные выше, приводят к ошибке подстановки, если ranges::reserve_hint(E) появляется в непосредственном контексте инстанцирования шаблона.
Объекты точек настройки
Имя ranges::reserve_hint обозначает объект точки настройки — константный функциональный объект типа класса литерального semiregular. Подробности см. в разделе CustomizationPointObject.
Примечания
Если ranges::reserve_hint(e) допустимо для выражения e, возвращаемый тип является целочисленным.
| Макрос проверки поддержки | Значение | Стандарт | Функция |
|---|---|---|---|
__cpp_lib_ranges_reserve_hint | 202502L | (C++26) |
ranges::reserve_hint |
Пример
См. также
|
(C++20) | возвращает целое число, равное размеру диапазона (объект точки настройки) |
|
(C++20) | возвращает знаковое целое число, равное размеру диапазона (объект точки настройки) |
|
(C++26) | указывает, что диапазон может оценить свой размер за постоянное время (концепт) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/ranges/reserve_hint