Spec-Zone.ru › C++

nothrow-sentinel-for, nothrow-sized-sentinel-for

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 могут выбрасывать исключения.

См. также

sentinel_for
(C++20)
задаёт тип как сентинел для типа input_or_output_iterator
(понятие)
sized_sentinel_for
(C++20)
задаёт, что оператор - можно применить к итератору и сентинелу, чтобы вычислить их разность за постоянное время
(понятие)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/memory/ranges/nothrow_sentinel_concepts

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API