名稱空間
變體
操作

std::incrementable

來自 cppreference.com
 
 
迭代器庫
迭代器概念
迭代器原語
演算法概念與工具
間接可呼叫概念
常用演算法要求
(C++20)
(C++20)
(C++20)
工具
(C++20)
迭代器介面卡
範圍訪問
(C++11)(C++14)
(C++14)(C++14)  
(C++11)(C++14)
(C++14)(C++14)  
(C++17)(C++20)
(C++17)
(C++17)
 
定義於標頭檔案 <iterator>
template< class I >

    concept incrementable =
        std::regular<I> &&
        std::weakly_incrementable<I> &&
        requires(I i) {
            { i++ } -> std::same_as<I>;

        };
(C++20 起)

此概念指定了可以透過前增量和後增量運算子遞增的型別的要求,其遞增操作是等價保留的,並且型別是std::equality_comparable

與僅支援單程演算法的std::weakly_incrementable不同,建模std::incrementable的型別可以使用多程單向演算法。

[編輯] 語義要求

I 建模 std::incrementable 僅當給定兩個型別為 I 的可遞增物件 ab

  • bool(a == b) 蘊含 bool(a++ == b),且
  • bool(a == b) 蘊含 bool(((void)a++, a) == ++b)

[編輯] 等價保留

標準庫概念的requires 表示式中宣告的表示式要求是等價保留的(另有說明除外)。

[編輯] 參閱

指定一個semiregular型別可以使用前置和後置增量運算子進行增量操作
(概念) [編輯]
(C++20)
指定型別與另一型別相同
(概念) [編輯]