Namensräume
Varianten
Aktionen

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

Von cppreference.com
 
 
 
 
basic_osyncstream& operator=( std::basic_osyncstream&& other );
(seit C++20)

Verschiebt einen synchronisierten Ausgabestrom per Zuweisung

Verschiebt den umschließenden std::basic_syncbuf aus dem entsprechenden Element von other (nach dieser Verschiebezuweisung gibt other.get_wrapped() einen Nullzeiger zurück und die Zerstörung von other erzeugt keine Ausgabe; alle ausstehenden gepufferten Ausgaben werden ausgegeben) und verschiebt per Zuweisung den Basis-Stream std::basic_ostream (dies tauscht alle Stream-Statusvariablen außer rdbuf zwischen *this und other)

Inhalt

[bearbeiten] Parameter

Sonstiges - ein weiterer synchronisierter Ausgabestrom, von dem verschoben werden soll

[bearbeiten] Rückgabewert

*this

[bearbeiten] Beispiel

#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); // Note that out is emitted here
    std::cout << "str_out = " << std::quoted(str_out.view()) << '\n';
}

Ausgabe

test
str_out = ""

[bearbeiten] Fehlerberichte

Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
LWG 3867 C++20 der Verschiebezuweisungsoperator war noexcept, aber
der Verschiebezuweisungsoperator von std::basic_syncbuf ist es nicht
entfernt noexcept

[bearbeiten] Siehe auch

konstruiert ein basic_osyncstream-Objekt
(public member function) [bearbeiten]
zerstört das basic_osyncstream-Objekt und gibt seinen internen Puffer aus
(public member function) [bearbeiten]
ruft emit() auf dem zugrunde liegenden basic_syncbuf auf, um dessen interne Daten an das endgültige Ziel zu übertragen
(public member function) [bearbeiten]