std::experimental::ostream_joiner<DelimT,CharT,Traits>::operator=
From cppreference.com
< cpp | experimental | ostream joiner
| template< class T > ostream_joiner& operator=( const T& value ); |
(1) | (Library Fundamentals TS v2) |
| ostream_joiner& operator=( const ostream_joiner& other ) = default; |
(2) | (Library Fundamentals TS v2) (暗黙的に宣言) |
| ostream_joiner& operator=( ostream_joiner&& other ) = default; |
(3) | (Library Fundamentals TS v2) (暗黙的に宣言) |
1) まず、プライベートな「最初の要素」フラグがfalseの場合、このイテレータに関連付けられた出力ストリーム
osに区切り文字delimを挿入します。これはos << delim;のように扱われます。 次に、「最初の要素」フラグを無条件にfalseに設定し、`value`を出力ストリームに挿入します。これはos << value;のように扱われます。
out_stream、delim、first_elementを、それぞれプライベートなストリームポインタ、区切り文字、「最初の要素」フラグのメンバとします。この関数は以下と同等です。if (!first_element) *out_stream << delim; first_element = false; *out_stream << value; return *this;
2,3) 暗黙的に宣言されたコピー/ムーブ代入演算子。プライベートなストリームポインタ、区切り文字、「最初の要素」フラグのメンバをコピー/ムーブ代入します。
[編集] パラメータ
| value | - | ストリームに書き込まれるオブジェクト |
| その他 | - | このオブジェクトに代入されるostream_joinerオブジェクト |
[編集] 戻り値
*this.
[編集] 例
このコードを実行
#include <experimental/iterator> #include <iostream> int main() { auto joiner = std::experimental::make_ostream_joiner(std::cout, ", "); joiner = "First"; joiner = "do no harm."; // prefixes with the delimiter }
出力
First, do no harm.