std::basic_osyncstream<CharT,Traits,Allocator>:operator=
Von cppreference.com
< cpp | io | basic osyncstream
| 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
Führen Sie diesen Code aus
#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) | |
zerstört das basic_osyncstream-Objekt und gibt seinen internen Puffer aus(public member function) | |
ruft emit() auf dem zugrunde liegenden basic_syncbuf auf, um dessen interne Daten an das endgültige Ziel zu übertragen(public member function) |