无异常输入迭代器,无异常前向迭代器,无异常哨兵,无异常输入范围,无异常前向范围
来自 cppreference.com
template< class I > concept no-throw-input-iterator = |
(1) | (仅供说明*) |
template< class I > concept no-throw-forward-iterator = |
(2) | (仅供说明*) |
template< class S, class I > concept no-throw-sentinel-for = std::sentinel_for<S, I>; |
(3) | (仅供说明*) |
template< class R > concept no-throw-input-range = |
(4) | (仅供说明*) |
template< class R > concept no-throw-forward-range = |
(5) | (仅供说明*) |
这些仅供说明的概念指定从算法对迭代器、哨兵和范围所需的操作中不会抛出异常。
[编辑] 语义要求
与所有标准概念一样,此处列出的每个概念只有在它包含的所有概念都被建模时才被建模。
1) 类型
I
仅当从递增、复制构造、移动构造、复制赋值、移动赋值或通过有效迭代器进行间接访问时没有抛出异常,才符合 no-throw-input-iterator
模型。3) 类型
S
和 I
仅当从复制构造、移动构造、复制赋值、移动赋值或在 I
和 S
类型的有效值之间进行比较时没有抛出异常,才符合 no-throw-sentinel-for
模型。[edit] 注释
这些概念允许在迭代器和哨兵上进行一些操作抛出异常,例如在无效值上进行操作。
[edit] 参见
(C++20) |
指定一个类型是输入迭代器,也就是说,它的引用值可以被读取,并且它可以被预增和后增。 (概念) |
(C++20) |
指定一个 input_iterator 是一个前向迭代器,支持相等比较和多遍遍历。(概念) |
(C++20) |
指定一个类型是 input_or_output_iterator 类型的哨兵。(概念) |
(C++20) |
指定一个范围,其迭代器类型满足 input_iterator 。(概念) |
(C++20) |
指定一个范围,其迭代器类型满足 forward_iterator 。(概念) |