Namespaces
Variants

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

From cppreference.net
template < class T >
ostream_joiner & operator = ( const T & value ) ;
(1) (техническая спецификация библиотеки fundamentals v2)
ostream_joiner & operator = ( const ostream_joiner & other ) = default ;
(2) (техническая спецификация библиотеки fundamentals v2)
(неявно объявлен)
ostream_joiner & operator = ( ostream_joiner && other ) = default ;
(3) (техническая спецификация библиотеки fundamentals v2)
(неявно объявлен)
1) Сначала, если приватный флаг "первый элемент" имеет значение false , вставьте разделитель delim в выходной поток os , связанный с этим итератором, как если бы было выполнено 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 - объект для записи в поток
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.";  // prefixes with the delimiter
}

Вывод:

First, do no harm.