Namespaces
Variants

std::basic_osyncstream<CharT,Traits,Allocator>:: operator=

From cppreference.net
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)