Namespaces
Variants

std:: basic_osyncstream

From cppreference.net
< cpp ‎ | io
Definido en el encabezado <syncstream>
template <

class CharT,
class Traits = std:: char_traits < CharT > ,
class Allocator = std:: allocator < CharT >

> class basic_osyncstream : public std:: basic_ostream < CharT, Traits >
(desde C++20)

La plantilla de clase std::basic_osyncstream es un envoltorio de conveniencia para std::basic_syncbuf . Proporciona un mecanismo para sincronizar hilos que escriben en el mismo flujo.

Se puede utilizar con una variable nombrada:

{
    std::osyncstream synced_out(std::cout); // contenedor sincronizado para std::cout
    synced_out << "Hello, ";
    synced_out << "World!";
    synced_out << std::endl; // se registra el vaciado, pero aún no se ejecuta
    synced_out << "and more!\n";
} // los caracteres se transfieren y std::cout se vacía

así como con un temporal:

std::osyncstream(std::cout) << "Hola, " << "Mundo!" << '\n';

Proporciona la garantía de que toda la salida dirigida al mismo búfer de destino final ( std::cout en los ejemplos anteriores) estará libre de carreras de datos y no se intercalará o corromperá de ninguna manera, siempre que cada escritura a ese búfer de destino final se realice a través de (posiblemente diferentes) instancias de std::basic_osyncstream .

Implementación típica de std::basic_osyncstream contiene solo un miembro: el std::basic_syncbuf envuelto.

cpp/io/ios base cpp/io/basic ios cpp/io/basic ostream std-basic osyncstream-inheritance.svg

Diagrama de herencia

Se proporcionan varios typedefs para tipos de caracteres comunes:

Definido en el encabezado <syncstream>
Tipo Definición
std::osyncstream std :: basic_osyncstream < char >
std::wosyncstream std :: basic_osyncstream < wchar_t >

Contenidos

Tipos de miembros

Tipo de miembro Definición
char_type CharT
traits_type Traits ; el programa está mal formado si Traits::char_type no es CharT .
int_type Traits::int_type
pos_type Traits::pos_type
off_type Traits::off_type
allocator_type Allocator
streambuf_type std:: basic_streambuf < CharT, Traits >
syncbuf_type std:: basic_syncbuf < CharT, Traits, Allocator >

Funciones miembro

construye un objeto basic_osyncstream
(función miembro pública)
asigna un objeto basic_osyncstream
(función miembro pública)
destruye el basic_osyncstream y emite su búfer interno
(función miembro pública)
obtiene un puntero al basic_syncbuf subyacente
(función miembro pública)
obtiene un puntero al búfer de flujo de destino final
(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)

Heredado de std:: basic_ostream

Funciones miembro

Salida formateada
inserta datos formateados
(función miembro pública de std::basic_ostream<CharT,Traits> )
Salida sin formato
inserta un carácter
(función miembro pública de std::basic_ostream<CharT,Traits> )
inserta bloques de caracteres
(función miembro pública de std::basic_ostream<CharT,Traits> )
Posicionamiento
devuelve el indicador de posición de salida
(función miembro pública de std::basic_ostream<CharT,Traits> )
establece el indicador de posición de salida
(función miembro pública de std::basic_ostream<CharT,Traits> )
Misceláneos
sincroniza con el dispositivo de almacenamiento subyacente
(función miembro pública de std::basic_ostream<CharT,Traits> )

Clases miembro

implementa la lógica básica para la preparación del flujo para operaciones de salida
(clase miembro pública de std::basic_ostream<CharT,Traits> )

Heredado de std:: basic_ios

Tipos de miembro

Tipo de miembro Definición
char_type CharT
traits_type Traits
int_type Traits::int_type
pos_type Traits::pos_type
off_type Traits::off_type

Funciones miembro

Funciones de estado
verifica que no ha ocurrido ningún error, es decir, las operaciones de E/S están disponibles
(función miembro pública de std::basic_ios<CharT,Traits> )
verifica si se ha alcanzado el fin de archivo
(función miembro pública de std::basic_ios<CharT,Traits> )
verifica si ha ocurrido un error
(función miembro pública de std::basic_ios<CharT,Traits> )
verifica si ha ocurrido un error irrecuperable
(función miembro pública de std::basic_ios<CharT,Traits> )
verifica si ha ocurrido un error (sinónimo de fail() )
(función miembro pública de std::basic_ios<CharT,Traits> )
verifica que no ha ocurrido ningún error (sinónimo de ! fail() )
(función miembro pública de std::basic_ios<CharT,Traits> )
devuelve las banderas de estado
(función miembro pública de std::basic_ios<CharT,Traits> )
establece las banderas de estado
(función miembro pública de std::basic_ios<CharT,Traits> )
modifica las banderas de estado
(función miembro pública de std::basic_ios<CharT,Traits> )
Formato
copia la información de formato
(función miembro pública de std::basic_ios<CharT,Traits> )
gestiona el carácter de relleno
(función miembro pública de std::basic_ios<CharT,Traits> )
Misceláneos
gestiona la máscara de excepciones
(función miembro pública de std::basic_ios<CharT,Traits> )
establece la configuración regional
(función miembro pública de std::basic_ios<CharT,Traits> )
gestiona el búfer de flujo asociado
(función miembro pública de std::basic_ios<CharT,Traits> )
gestiona el flujo vinculado
(función miembro pública de std::basic_ios<CharT,Traits> )
reduce caracteres
(función miembro pública de std::basic_ios<CharT,Traits> )
amplía caracteres
(función miembro pública de std::basic_ios<CharT,Traits> )

Heredado de std:: ios_base

Funciones miembro

Formato
gestiona los indicadores de formato
(función miembro pública de std::ios_base )
establece un indicador de formato específico
(función miembro pública de std::ios_base )
limpia un indicador de formato específico
(función miembro pública de std::ios_base )
gestiona la precisión decimal de operaciones de punto flotante
(función miembro pública de std::ios_base )
gestiona el ancho de campo
(función miembro pública de std::ios_base )
Configuraciones regionales
establece la configuración regional
(función miembro pública de std::ios_base )
devuelve la configuración regional actual
(función miembro pública de std::ios_base )
Arreglo extensible interno
[static]
devuelve un entero único a nivel de programa que es seguro usar como índice para pword() y iword()
(función miembro estática pública de std::ios_base )
redimensiona el almacenamiento privado si es necesario y accede al elemento long en el índice dado
(función miembro pública de std::ios_base )
redimensiona el almacenamiento privado si es necesario y accede al elemento void * en el índice dado
(función miembro pública de std::ios_base )
Misceláneos
registra función de callback de eventos
(función miembro pública de std::ios_base )
establece si las bibliotecas de E/S de C++ y C son interoperables
(función miembro estática pública de std::ios_base )
Clases miembro
excepción de flujo
(clase miembro pública de std::ios_base )
inicializa objetos de flujo estándar
(clase miembro pública de std::ios_base )

Tipos de miembros y constantes

Tipo Explicación
tipo de modo de apertura de flujo

También se definen las siguientes constantes:

Constante Explicación
app buscar al final del flujo antes de cada escritura
binary abrir en modo binario
in abrir para lectura
out abrir para escritura
trunc descartar el contenido del flujo al abrir
ate buscar al final del flujo inmediatamente después de abrir
noreplace (C++23) abrir en modo exclusivo

(typedef)
tipo de banderas de formato

También se definen las siguientes constantes:

Constante Explicación
dec usar base decimal para E/S de enteros: ver std::dec
oct usar base octal para E/S de enteros: ver std::oct
hex usar base hexadecimal para E/S de enteros: ver std::hex
basefield dec | oct | hex . Útil para operaciones de máscara
left ajuste a la izquierda (añade caracteres de relleno a la derecha): ver std::left
right ajuste a la derecha (añade caracteres de relleno a la izquierda): ver std::right
internal ajuste interno (añade caracteres de relleno al punto designado interno): ver std::internal
adjustfield left | right | internal . Útil para operaciones de máscara
scientific generar tipos de punto flotante usando notación científica, o notación hexadecimal si se combina con fixed : ver std::scientific
fixed generar tipos de punto flotante usando notación fija, o notación hexadecimal si se combina con scientific : ver std::fixed
floatfield scientific | fixed . Útil para operaciones de máscara
boolalpha insertar y extraer el tipo bool en formato alfanumérico: ver std::boolalpha
showbase generar un prefijo que indica la base numérica para salida de enteros, requiere el indicador monetario en E/S monetaria: ver std::showbase
showpoint generar un carácter de punto decimal incondicionalmente para salida de números de punto flotante: ver std::showpoint
showpos generar un carácter + para salida numérica no negativa: ver std::showpos
skipws omitir espacios en blanco iniciales antes de ciertas operaciones de entrada: ver std::skipws
unitbuf vaciar el buffer después de cada operación de salida: ver std::unitbuf
uppercase reemplazar ciertas letras minúsculas con sus equivalentes en mayúsculas en ciertas operaciones de salida: ver std::uppercase

(typedef)
tipo de estado del flujo

También se definen las siguientes constantes:

Constante Explicación
goodbit sin error
badbit error de flujo irrecuperable
failbit operación de entrada/salida fallida (error de formato o extracción)
eofbit la secuencia de entrada asociada ha alcanzado el fin de archivo

(typedef)
tipo de dirección de búsqueda

También se definen las siguientes constantes:

Constante Explicación
beg el inicio de un flujo
end el final de un flujo
cur la posición actual del indicador de posición del flujo

(typedef)
especifica el tipo de evento
(enum)
tipo de función de callback
(typedef)

Notas

Macro de prueba de características Valor Estándar Característica
__cpp_lib_syncbuf 201803L (C++20) Flujo de salida con búfer sincronizado ( std::osyncstream , std::syncbuf ) y manipuladores