命名空间
变体
操作

std::incrementable

来自 cppreference.cn
 
 
迭代器库
迭代器概念
迭代器原语
算法概念与工具
间接可调用概念
常用算法要求
(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)
指定类型与另一类型相同
(概念) [编辑]