std::experimental::ranges::Incrementable
從 cppreference.com
< cpp | experimental | ranges
template< class I > concept bool Incrementable = |
(範圍 TS) | |
概念 Incrementable<I>
指定能(用前和後自增運算符)自增的類型上的要求。要求自增運算(包括 WeaklyIncrementable
所要求者)保持相等性,並要求該類型為 EqualityComparable
。
令 a
與 b
為 I
類型的可自增對象。Incrementable<I>
僅若下列條件成立才得到滿足:
- 若 bool(a == b) 則 bool(a++ == b)。
- 若 bool(a == b) 則 bool(void(a++), a) == ++b)。
[編輯] 相等性保持
若表達式對給定的相等輸入產生相等輸出,則它保持相等性。
- 表達式的輸入由其操作數組成。
- 表達式的輸出由其結果和表達式所修改的所有操作數(若存在)組成。
每個要求保持相等性的表達式還進一步要求是穩定的:以相同輸入對象對這種表達式進行兩次求值必須擁有相等的輸出,而無任何對這些輸入對象的顯式中間修改。
除非另外提醒,每個用於 requires 表達式中的表達式都要求保持相等性且穩定,而表達式的求值必須只修改其非 const 操作數。必須不修改常運算數。
[編輯] 註解
a
等於 b
的要求蘊含 ++a
等於 ++b
,這允許將 Incrementable
類型用於多趟算法。