std::weakly_incrementable
來自 cppreference.com
< cpp | 迭代器 (iterator)
定義於標頭檔案 <iterator> |
||
template< class I > concept weakly_incrementable = |
(C++20 起) | |
關於 /*is-signed-integer-like*/ 的定義,請參見 is-integer-like
。
此概念規定了可透過前置和後置增量運算子遞增的型別的要求,但這些增量操作不一定保持等價性,並且型別本身不要求是 std::equality_comparable。
對於 std::weakly_incrementable
型別,a == b 不表示 ++a == ++b。對弱可遞增型別操作的演算法必須是單趟演算法。這些演算法可以透過 std::istream_iterator 與輸入流一起用作輸入資料的源。
[編輯] 語義要求
對於型別 I
的物件 i,僅當滿足以下所有條件時,I
才建模 std::weakly_incrementable
:
- 表示式 ++i 和 i++ 具有相同的定義域。
- 如果 i 可遞增,則 ++i 和 i++ 都會使 i 前進。
- 如果 i 可遞增,則 std::addressof(++i) == std::addressof(i)。
[編輯] 缺陷報告
下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。
缺陷報告 | 應用於 | 釋出時的行為 | 正確的行為 |
---|---|---|---|
P2325R3 | C++20 | default_initializable 是必需的 |
未要求 |
[編輯] 參見
(C++20) |
指定 weakly_incrementable 型別的增量操作是保持等價性的,並且該型別是equality_comparable 的(概念) |