名前空間
変種
操作

std::output_iterator

From cppreference.com
 
 
イテレータライブラリ
イテレータのコンセプト
output_iterator
(C++20)

イテレータのプリミティブ
アルゴリズムのコンセプトとユーティリティ
間接呼び出し可能コンセプト
共通アルゴリズム要件
(C++20)
(C++20)
(C++20)
ユーティリティ
(C++20)
イテレータアダプタ
Rangeアクセス
(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, class T >

    concept output_iterator =
        std::input_or_output_iterator<I> &&
        std::indirectly_writable<I, T> &&
        requires(I i, T&& t) {
            *i++ = std::forward<T>(t); /* equality preservation は要求されない */

        };
(C++20以降)

output_iterator コンセプトは、input_or_output_iterator コンセプトを洗練したもので、T によってエンコードされた型と値カテゴリの値の書き込みに使用できるという要件を追加します(indirectly_writable を介して)。equality_comparable は要求されません。

目次

[編集] 意味上の要件

E を、decltype((E))T であるような式とし、iI 型のデリファレンス可能なオブジェクトとします。std::output_iterator<I, T> は、それが包含するすべてのコンセプトがモデル化されており、かつ *i++ = E;*i = E; ++i; と同等の効果を持つ場合にのみモデル化されます。

[編集] 等価性保持

標準ライブラリのコンセプトのrequiresで宣言された式は、(特に明記されていない限り)等価性保持である必要があります。

[編集] 注釈

LegacyOutputIterator 要件とは異なり、output_iterator コンセプトはイテレータカテゴリタグの定義を要求しません。

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

[編集] 関連項目

ある型のオブジェクトがインクリメントおよび間接参照できることを規定する
(コンセプト) [編集]
English 日本語 中文(简体) 中文(繁體)