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) | (spécifications techniques des bibliothèques fondamentales v2) |
|
ostream_joiner
&
operator
=
(
const
ostream_joiner
&
other
)
=
default
;
|
(2) |
(spécifications techniques des bibliothèques fondamentales v2)
(déclaré implicitement) |
|
ostream_joiner
&
operator
=
(
ostream_joiner
&&
other
)
=
default
;
|
(3) |
(spécifications techniques des bibliothèques fondamentales v2)
(déclaré implicitement) |
1)
D'abord, si l'indicateur privé "premier élément" est
false
, insérez le délimiteur
delim
dans le flux de sortie
os
associé à cet itérateur comme si par
os
<<
delim
;
.
Ensuite, positionne inconditionnellement le drapeau "premier élément" à
false
, et insère
value
dans le flux de sortie comme par
os
<<
value
;
.
Soient
out_stream
,
delim
, et
first_element
les membres privés respectifs du pointeur de flux, du délimiteur et de l'indicateur "premier élément". Alors cette fonction est équivalente à
if (!first_element) *out_stream << delim; first_element = false; *out_stream << value; return *this;
2,3)
Opérateur d'affectation de copie/déplacement déclaré implicitement qui copie/déplace les membres privés du pointeur de flux, du délimiteur et de l'indicateur de "premier élément".
Paramètres
| value | - | l'objet à écrire dans le flux |
| other | - |
l'objet
ostream_joiner
à assigner à cet objet
|
Valeur de retour
* this .
Exemple
Exécuter ce 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 }
Sortie :
First, do no harm.