Namespaces
Variants

std::ostream_iterator<T,CharT,Traits>:: operator=

From cppreference.net
Iterator library
Iterator concepts
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)
ostream_iterator & operator = ( const ostream_iterator & ) ;
(1)
ostream_iterator & operator = ( const T & value ) ;
(2)
**Примечание:** В данном случае весь код внутри тегов ` ` содержит C++ синтаксис и специфические термины (ostream_iterator, operator, const, T, value), которые не подлежат переводу согласно требованиям. HTML структура и нумерация (1), (2) также сохранены без изменений.
1) Оператор копирующего присваивания. Присваивает содержимое other
2) Вставляет value в связанный поток, затем вставляет разделитель, если он был указан во время создания.

Если out_stream является указателем на связанный std::basic_ostream и delim - это разделитель, указанный при создании данного объекта, то эффект эквивалентен

* out_stream << value ;
if ( delim ! = 0 )
* out_stream << delim ;
return * this ;

Содержание

Параметры

value - объект для вставки

Возвращаемое значение

* this

Примечания

T может быть любым классом с пользовательским operator<< .

До C++20 существование оператора копирующего присваивания зависело от устаревшей неявной генерации .

Пример

#include <iostream>
#include <iterator>
int main()
{
    std::ostream_iterator<int> i1(std::cout, ", ");
    *i1++ = 1; // обычная форма, используемая стандартными алгоритмами
    *++i1 = 2;
    i1 = 3; // ни * ни ++ не требуются
    std::ostream_iterator<double> i2(std::cout);
    i2 = 3.14;
    std::cout << '\n';
}

Вывод:

1, 2, 3, 3.14