Namespaces
Variants

std::experimental::ostream_joiner<DelimT,CharT,Traits>:: operator=

From cppreference.net
template < class T >
ostream_joiner & operator = ( const T & value ) ;
(1) (ライブラリ基盤仕様 TS v2)
ostream_joiner & operator = ( const ostream_joiner & other ) = default ;
(2) (ライブラリ基盤仕様 TS v2)
(暗黙的に宣言)
ostream_joiner & operator = ( ostream_joiner && other ) = default ;
(3) (ライブラリ基盤仕様 TS v2)
(暗黙的に宣言)
1) まず、非公開の「最初の要素」フラグが false の場合、このイテレータに関連付けられた出力ストリーム os に区切り文字 delim を挿入します。挿入は os << delim ; のように行われます。
その後、無条件に「最初の要素」フラグを false に設定し、 value を出力ストリームに os << value ; のように挿入します。
privateメンバであるストリームポインタ、デリミタ、および「最初の要素」フラグをそれぞれ out_stream delim first_element とすると、この関数は以下と等価です
if (!first_element)
    *out_stream << delim;
first_element = false;
*out_stream << value;
return *this;
2,3) プライベートなストリームポインタ、デリミタ、および「最初の要素」フラグメンバをコピー/ムーブ代入する暗黙的に宣言されたコピー/ムーブ代入演算子。

パラメータ

value - ストリームに書き込まれるオブジェクト
other - このオブジェクトに代入される 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.";  // 区切り文字を先頭に付加
}

出力:

First, do no harm.