nothrow-input-iterator, nothrow-forward-iterator, nothrow-bidirectional-iterator, no-throw-input-range, nothrow-random-access-iterator
来自cppreference.com
| (1) | (仅用于阐述*) | |
| (2) | (仅用于阐述*) | |
| (3) | (C++26 起) (仅用于阐述*) |
|
| (4) | (C++26 起) (仅用于阐述*) |
|
这些仅用于阐述的概念指定 <memory> 专门算法所要求的迭代器上的操作均不抛异常。
/*nothrow-sentinel-for*/ 和 /*nothrow-sentinel-for*/ 的定义见此页。
语义要求
1) 只有在
I 类型的有效迭代器的自增、复制构造、移动构造、复制赋值、移动复制和间接操作都不会抛出异常时,类型 I 才会实现 nothrow-input-iterator。3) 只有在
I 类型的有效迭代器的自减操作不会抛出异常时,类型 I 才会实现 nothrow-bidirectional-iterator。4) 只有在
I 类型的有效迭代器之间的比较操作以及 I 类型与 std::iter_difference_t<I> 类型的有效值之间的 -、+、-=、+=、[] 运算都不会抛出异常时,类型 I 才会实现 nothrow-random-access-iterator。注解
这些概念允许部分迭代器操作抛出异常。
参阅
(C++20) |
指定类型为输入迭代器,即可读取其所引用的值,且可前/后自增 (概念) |
(C++20) |
指定 input_iterator 为向前迭代器,支持相等比较与多趟操作 (概念) |
(C++20) |
指定 forward_iterator 为双向迭代器,支持向后移动 (概念) |
(C++20) |
指定 bidirectional_iterator 为随机访问迭代器,支持常数时间内的前进和下标访问 (概念) |