名前空間
変種
操作

std::experimental::ranges::Iterator

From cppreference.com
< cpp‎ | experimental‎ | ranges
 
 
 
 
イテレータライブラリ
イテレータのコンセプト
イテレータ

間接呼び出し可能コンセプト
                                                  
                                                  
                                                  
共通アルゴリズム要件
                                                  
Concept utilities
Iterator utilities and operations
Iterator traits
イテレータアダプタ
ストリームイテレータ
 
template< class I >

concept bool Iterator =
    requires(I i) {
        { *i } -> auto&&; // Requires: i is dereferenceable
    } &&

    WeaklyIncrementable<I>;
(ranges TS)

Iterator コンセプトは、イテレータのコンセプト階層の基盤を形成します。すべてのイテレータは Iterator 要件を満たします。

[編集] 等価性保持

式が**等価性保持**であるとは、等しい入力に対して等しい出力を生成することを意味します。

  • 式の入力は、そのオペランドで構成されます。
  • 式の出力は、その結果と、式によって変更されたすべてのオペランド(存在する場合)で構成されます。

等価性保持が要求されるすべての式は、さらに**安定**である必要があります。同じ入力オブジェクトでそのような式の2回の評価は、これらの入力オブジェクトの明示的な介入的な変更がない限り、等しい出力を持ちます。

特に断りがない限り、requires-expression で使用されるすべての式は、等価性を保持し、安定であることが要求され、式の評価は定数でないオペランドのみを変更できます。定数のオペランドは変更してはいけません。

[編集] 注釈

Iterator 自体は、イテレータの逆参照とインクリメントの操作のみを指定します。ほとんどのアルゴリズムは、追加の操作を必要とします。たとえば

-> auto&& 制約は、逆参照の結果型が void になれないことを意味します。

English 日本語 中文(简体) 中文(繁體)