table of contents
std::experimental::ostream_joiner::operator=(3) | C++ Standard Libary | std::experimental::ostream_joiner::operator=(3) |
NAME¶
std::experimental::ostream_joiner::operator= - std::experimental::ostream_joiner::operator=
Synopsis¶
template< class T > (1) (library fundamentals TS v2)
ostream_joiner& operator=( const T& value );
ostream_joiner& operator=( const ostream_joiner& (2) (library
fundamentals TS v2)
other ) = default; (implicitly declared)
ostream_joiner& operator=( ostream_joiner&& other ) (3)
(library fundamentals TS v2)
= default; (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.
2024.06.10 | http://cppreference.com |