std::experimental::ostream_joiner<DelimT,CharT,Traits>::operator=
Von 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) (implizit deklariert) |
| ostream_joiner& operator=( ostream_joiner&& other ) = default; |
(3) | (Library Fundamentals TS v2) (implizit deklariert) |
1) Zuerst, falls das interne "erstes Element"-Flag false ist, fügen Sie das Trennzeichen
delim in den Ausgabestrom os ein, der diesem Iterator zugeordnet ist, als ob durch os << delim;. Setzt dann bedingungslos das "erstes Element"-Flag auf false und fügen Sie value in den Ausgabestrom ein, als ob durch os << value;.
Lassen Sie
out_stream, delim und first_element die privaten Stream-Zeiger-, Trennzeichen- und "erstes Element"-Flag-Member bezeichnen. Dann ist diese Funktion äquivalent zuif (!first_element) *out_stream << delim; first_element = false; *out_stream << value; return *this;
2,3) Implizit deklarierter Kopier-/Move-Zuweisungsoperator, der die privaten Stream-Zeiger-, Trennzeichen- und "erstes Element"-Flag-Member kopiert/verschiebtt.
[bearbeiten] Parameter
| value | - | das Objekt, das in den Stream geschrieben werden soll |
| Sonstiges | - | das ostream_joiner-Objekt, das diesem Objekt zugewiesen werden soll |
[bearbeiten] Rückgabewert
*this.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#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.