std::basic_osyncstream<CharT,Traits,Allocator>:: operator=
|
basic_osyncstream
&
operator
=
(
std::
basic_osyncstream
&&
other
)
;
|
(depuis C++20) | |
Effectue une affectation par déplacement d'un flux de sortie synchronisé :
Transfère par déplacement le
std::basic_syncbuf
encapsulé depuis le membre correspondant de
other
(après cette affectation par déplacement,
other.
get_wrapped
(
)
renvoie un pointeur nul et la destruction de
other
ne produit aucune sortie ; toute sortie tamponnée en attente sera émise) et
transfère par déplacement
la classe de base
std::basic_ostream
(ceci échange toutes les variables d'état du flux à l'exception de
rdbuf
entre
*
this
et
other
)
Table des matières |
Paramètres
| other | - | un autre flux de sortie synchronisé à partir duquel déplacer |
Valeur de retour
* this
Exemple
#include <iomanip> #include <iostream> #include <sstream> #include <syncstream> #include <utility> int main() { std::osyncstream out(std::cout); out << "test\n"; std::ostringstream str_out; std::osyncstream{str_out} = std::move(out); // Notez que out est émis ici std::cout << "str_out = " << std::quoted(str_out.view()) << '\n'; }
Sortie :
test str_out = ""
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | S'applique à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 3867 | C++20 |
l'opérateur d'affectation par déplacement était
noexcept
, mais
std::basic_syncbuf 's l'opérateur d'affectation par déplacement ne l'est pas |
supprimé noexcept |
Voir aussi
construit un objet
basic_osyncstream
(fonction membre publique) |
|
détruit le
basic_osyncstream
et émet son tampon interne
(fonction membre publique) |
|
appelle
emit()
sur le
basic_syncbuf
sous-jacent pour transmettre ses données internes vers la destination finale
(fonction membre publique) |