std::experimental::ostream_joiner<DelimT,CharT,Traits>:: operator=
From cppreference.net
<
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)
(implizit deklariert) |
|
ostream_joiner
&
operator
=
(
ostream_joiner
&&
other
)
=
default
;
|
(3) |
(Library Fundamentals TS v2)
(implizit deklariert) |
1)
Zuerst, wenn das private "erstes Element"-Flag
false
ist, füge das Trennzeichen
delim
in den Ausgabestream
os
ein, der mit diesem Iterator assoziiert ist, als ob durch
os
<<
delim
;
.
Setzt dann bedingungslos das "erstes Element"-Flag auf
false
und fügt
value
in den Ausgabestream ein, als ob durch
os
<<
value
;
.
Seien
out_stream
,
delim
, und
first_element
die privaten Stream-Zeiger, Trennzeichen und "erstes Element" Flag-Member jeweils. Dann ist diese Funktion äquivalent zu
if (!first_element) *out_stream << delim; first_element = false; *out_stream << value; return *this;
2,3)
Implizit deklarierter Kopier-/Verschiebungszuweisungsoperator, der die privaten Stream-Zeiger, Trennzeichen und "erstes Element"-Flag-Mitglieder kopiert/verschiebt und zuweist.
Parameter
| value | - | das Objekt, das in den Stream geschrieben werden soll |
| other | - |
das
ostream_joiner
Objekt, das diesem Objekt zugewiesen werden soll
|
Rückgabewert
* this .
Beispiel
Diesen Code ausführen
#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 }
Ausgabe:
First, do no harm.