std::basic_osyncstream<CharT,Traits,Allocator>:: operator=
|
basic_osyncstream
&
operator
=
(
std::
basic_osyncstream
&&
other
)
;
|
(desde C++20) | |
Asigna por movimiento un flujo de salida sincronizado:
Asigna por movimiento el
std::basic_syncbuf
encapsulado desde el miembro correspondiente de
other
(después de esta asignación por movimiento,
other.
get_wrapped
(
)
devuelve un puntero nulo y la destrucción de
other
no produce salida; cualquier salida almacenada en búfer pendiente será emitida) y
asigna por movimiento
la base
std::basic_ostream
(esto intercambia todas las variables de estado del flujo excepto
rdbuf
entre
*
this
y
other
)
Contenidos |
Parámetros
| otro | - | otro flujo de salida sincronizado del cual mover |
Valor de retorno
* this
Ejemplo
#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); // Nota: out se emite aquí std::cout << "str_out = " << std::quoted(str_out.view()) << '\n'; }
Salida:
test str_out = ""
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 3867 | C++20 |
el operador de asignación de movimiento era
noexcept
, pero
std::basic_syncbuf 's operador de asignación de movimiento no lo es |
eliminado noexcept |
Véase también
construye un objeto
basic_osyncstream
(función miembro pública) |
|
destruye el
basic_osyncstream
y emite su buffer interno
(función miembro pública) |
|
llama a
emit()
en el
basic_syncbuf
subyacente para transmitir sus datos internos al destino final
(función miembro pública) |