命名空间
变体
操作

std::可递增

来自 cppreference.com
< cpp‎ | 迭代器
 
 
迭代器库
迭代器概念
可递增
(C++20)
迭代器基元
算法概念和实用程序
间接可调用概念
通用算法要求
(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 可递增 =
        std::regular<I> &&
        std::weakly_incrementable<I> &&
        requires(I i) {
            { i++ } -> std::same_as<I>;

        };
(自 C++20)

此概念指定了对可以被前缀和后缀递增运算符递增的类型要求,这些类型的递增操作是等价保持的,并且该类型是std::equality_comparable

std::weakly_incrementable不同,后者仅支持单遍算法,多遍单向算法可以与建模std::可递增的类型一起使用。

[编辑] 语义要求

I 仅在给定任何两个可递增对象 ab 类型为 I 时才建模std::可递增

  • bool(a == b) 意味着 bool(a++ == b),以及
  • bool(a == b) 意味着 bool(((void)a++, a) == ++b).

[编辑] 等价保持

在标准库概念的requires 表达式中声明的表达式需要是等价保持的(除非另有说明)。

[编辑] 参见

指定semiregular 类型可以使用前缀和后缀递增运算符递增
(概念) [编辑]
(C++20)
指定类型与另一种类型相同
(概念) [编辑]