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.