名前空間
変種
操作

std::experimental::ranges::OutputIterator

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



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

concept bool OutputIterator =
    Iterator<I> && Writable<I, T> &&
    requires(I i, T&& t) {
        *i++ = std::forward<T>(t); // equality preservingである必要はない

    };
(ranges TS)

OutputIteratorコンセプトは、Iteratorの改良版であり、Tによってエンコードされた型と値カテゴリの値(Writable経由)を書き込むことができるという要件を追加します。EqualityComparableは要求されません。

Eを、decltype((E))Tであり、iが型Iのデリファレンス可能なオブジェクトであるような式とします。OutputIterator<I, T>が満たされるのは、*i++ = E;の効果が*i = E; ++i;の効果と同等である場合のみです。

[編集] 等価性保持

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

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

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

[編集] 注記

C++標準の出力イテレータ要件とは異なり、Ranges TSのOutputIteratorは、イテレータカテゴリタグが定義されていることを要求しません。

出力イテレータ上のアルゴリズムは、シングルパスであるべきです。

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