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устанавливается так, как если бы выполнялся поиск, зависящий от аргументов (ADL) только.
- Иначе,
ranges::reserve_hint(E)является некорректным.
Диагностируемые некорректные случаи выше приводят к ошибке подстановки, когда ranges::reserve_hint(E) встречается в непосредственном контексте инстанцирования шаблона.
Объекты точек кастомизации
Имя
ranges::reserve_hint
обозначает
объект точки кастомизации
, который является константным
функциональным объектом
литерального
типа
semiregular
класса. Для подробностей см.
CustomizationPointObject
.
Примечания
Всякий раз, когда ranges :: reserve_hint ( e ) является валидным для выражения e , возвращаемый тип является integer-like .
| Макрос тестирования возможностей | Значение | Стандарт | Возможность |
|---|---|---|---|
__cpp_lib_ranges_reserve_hint
|
202502L
|
(C++26) | ranges::reserve_hint |
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
(C++20)
|
возвращает целое число, равное размеру диапазона
(объект точки кастомизации) |
|
(C++20)
|
возвращает знаковое целое число, равное размеру диапазона
(объект точки кастомизации) |
|
указывает, что диапазон может оценить свой размер за постоянное время
(концепт) |