Namespaces
Variants

std:: output_iterator

From cppreference.net
Iterator library
Iterator concepts
output_iterator
(C++20)

Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(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 ) ; /* 等価性を保持する必要はない */

} ;
(C++20以降)

output_iterator 概念は、 input_or_output_iterator を改良したもので、 T によってエンコードされた型と値カテゴリの値を( indirectly_writable を介して)書き込むために使用できるという要件を追加しています。 equality_comparable は必須ではありません。

目次

セマンティック要件

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

等価性保存

標準ライブラリコンセプトの requires expressions で宣言される式は、 equality-preserving であることが要求されます(特に明記されている場合を除く)。

注記

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

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

関連項目

ある型のオブジェクトがインクリメントおよびデリファレンス可能であることを指定する
(コンセプト)