std::incrementable
From cppreference.com
| ヘッダ <iterator> で定義 |
||
| template< class I > concept incrementable = |
(C++20以降) | |
このconceptは、プリインクリメント演算子およびポストインクリメント演算子でインクリメント可能であり、そのインクリメント操作は 等価性を保持し、かつ型が std::equality_comparable であるような型に対する要件を指定します。
std::weakly_incrementableが単一パスアルゴリズムのみをサポートするのとは異なり、std::incrementableをモデル化する型では、マルチパス単方向アルゴリズムを使用できます。
[編集] 意味論的要件
Iは、型Iの任意の2つのインクリメント可能なオブジェクトaとbが与えられた場合、std::incrementableをモデル化します。
- bool(a == b) は bool(a++ == b) を意味し、
- bool(a == b) は bool(((void)a++, a) == ++b) を意味します。
[編集] 等価性保持
標準ライブラリのコンセプトのrequires式で宣言された式は、(特に明記されていない限り)等価性保持である必要があります。
[編集] 関連項目
| (C++20) |
semiregular 型が前置および後置インクリメント演算子でインクリメントできることを規定する(コンセプト) |
| (C++20) |
型が別の型と同一であることを規定する (コンセプト) |