Namespaces
Variants

std::ranges:: reserve_hint

From cppreference.net
Ranges library
Range adaptors
Определено в заголовочном файле <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 как 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 , возвращаемый тип является integer-like .

Макрос тестирования возможностей Значение Стандарт Возможность
__cpp_lib_ranges_reserve_hint 202502L (C++26) ranges::reserve_hint

Пример

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

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