nothrow-sentinel-for, nothrow-sized-sentinel-for
Из ru.cppreference.net
template< class S, class I >
concept /*nothrow-sentinel-for*/ = std::sentinel_for<S, I>;
|
(1) | (только для демонстрации*) |
template< class I >
concept /*nothrow-sized-sentinel-for*/ =
/*nothrow-sentinel-for*/<S, I> &&
std::sized_sentinel_for<S, I>;
|
(2) | (начиная с C++26) (только для демонстрации*) |
Эти концепты, предназначенные только для демонстрации, определяют, что никакие исключения не выбрасываются из операций, необходимых для специализированных <memory> алгоритмов между итераторами и стражами.
Семантические требования
1) Типы
S и I моделируют nothrow-sentinel-for только если никакие исключения не выбрасываются из конструктора копирования, конструктора перемещения, оператора присваивания копированием, оператора присваивания перемещением или сравнений между корректными значениями типа I и S.2) Типы
S и I моделируют nothrow-sized-sentinel-for только если никакие исключения не выбрасываются из оператора - для корректных значений типа I и S.Примечания
Эти концепты допускают, чтобы некоторые операции sentinel_for и sized_sentinel_for выбрасывали исключения.
См. также
(C++20) |
определяет, что тип является стражем для типа input_or_output_iterator тип (концепт) |
(C++20) |
определяет, что оператор - может быть применен к итератору и стражу для вычисления их разности за константное время (концепт) |