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) (implicitly declared) |
ostream_joiner& operator=( ostream_joiner&& other ) = default; |
(3) | (library fundamentals TS v2) (implicitly declared) |
1) First, if the private "first element" flag is false, insert the delimiter
delim
into the output stream os
associated with this iterator as if by os << delim;. Then, unconditionally sets the "first element" flag to false, and insert value into the output stream as if by os << value;.
Let
out_stream
, delim
, and first_element
denote the private stream pointer, delimiter, and "first element" flag members respectively. Then this function is equivalent to
if (!first_element) *out_stream << delim; first_element = false; *out_stream << value; return *this;
2-3) Implicitly declared copy/move assignment operator that copy/move assigns the private stream pointer, delimiter, and "first element" flag members.
Parameters
value | - | the object to to be written to the stream |
other | - | the ostream_joiner object to be assigned to this object
|
Return value
*this.
Example
Run this code
#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 }
Output:
First, do no harm.