std::weakly_incrementable
定义于头文件 <iterator>
|
||
template<class I> concept weakly_incrementable = |
(C++20 起) | |
其中 /*is-signed-integer-like*/<I> 若 std::signed_signal<I> 为 true
或若 I 为包括所有运算符、隐式转换和 std::numeric_limits 特化的表现类似有符号整数类型的类,则为 true
。
此概念指定能以前后自增运算符自增的类型上的要求,不过这些自增运算不要求保持相等性,而且不要求类型自身为 std::equality_comparable 。
对于 std::weakly_incrementable
类型, a == b 不蕴含 ++a == ++b 。弱可自增类型上的算法必须是单趟算法。这些算法能通过 std::istream_iterator 用于作为输入数据源的 istream
。
语义要求
给定类型 I
的任何对象 i
, I
仅若满足下列条件才实现 std::weakly_incrementable
- 表达式 ++i 与 i++ 拥有相同定义域
- 若
i
可自增,则 ++i 与 i++ 均增加i
- 若
i
可自增,则 std::addressof(++i) == std::addressof(i)
参阅
(C++20) |
指定 weakly_incrementable 类型上的自增操作保持相等性,而且该类型为 equality_comparable (概念) |