Namespaces
Variants

std::ranges::reserve_hint

Со ru.cppreference.net
 
 
Библиотека диапазонов
Адапторы диапазонов
 
Определён в заголовочном файле <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

Пример

Смотрите также

возвращает целое число, равное размеру диапазона
(объект точки кастомизации)
возвращает знаковое целое число, равное размеру диапазона
(объект точки кастомизации)
указывает, что диапазон может оценить свой размер за постоянное время
(концепт)