Namespaces
Variants

std::basic_filebuf<CharT,Traits>:: overflow

From cppreference.net
protected :
virtual int_type overflow ( int_type ch = Traits :: eof ( ) ) ;

Escribe algunos datos del área de salida a la secuencia de caracteres asociada (al archivo).

Se comporta como la versión de la clase base std::basic_streambuf::overflow() , excepto que el comportamiento de "consumir caracteres" se define de la siguiente manera:

1) Primero, utiliza std::codecvt::out de la configuración regional imbucida para convertir los caracteres a representación externa (posiblemente multibyte), almacenada en un búfer temporal, como sigue: ( XSIZE es un tamaño de búfer no especificado)
const std::codecvt<CharT, char, typename Traits::state_type>& a_codecvt =
    std::use_facet<std::codecvt<CharT, char, typename Traits::state_type>>(getloc());
typename Traits::state_type state;
CharT* end;
char xbuf[XSIZE];
char* xbuf_end;
std::codecvt_base::result r =
    a_codecvt.out(state, pbase(), pptr(), end, xbuf, xbuf + XSIZE, xbuf_end);
2) Luego escribe todos los caracteres completamente convertidos desde el búfer al archivo. Formalmente, realiza los siguientes pasos basados en el valor de r :
r Operación
std:: codecvt_base :: ok Escribe los caracteres en [ xbuf , xbuf_end ) al archivo, y falla si la escritura falla. En este punto si pbase ( ) ! = pptr ( ) y pbase ( ) == end son ambos true (lo que significa que xbuf no es suficientemente grande ni para un carácter externo), entonces incrementa XSIZE y repite desde el principio.
std:: codecvt_base :: partial Escribe los caracteres externos convertidos en [ xbuf , xbuf_end ) al archivo, y repite usando los caracteres internos no convertidos restantes en [ end , pptr ( ) ) . Si la escritura falla, falla (sin repetir).
std:: codecvt_base :: noconv Escribe los caracteres en [ pbase ( ) , pptr ( ) ) al archivo.
std:: codecvt_base :: error Falla.
Si el archivo asociado no está abierto ( is_open() retorna false ), la salida siempre fallará.
(since C++26)

Contenidos

Parámetros

ch - el carácter a almacenar en el área de put

Valor de retorno

Traits :: not_eof ( ch ) para indicar éxito o Traits :: eof ( ) para indicar fallo.

Notas

Si a_codecvt. always_noconv ( ) retorna true , la llamada a a_codecvt. out ( ) puede omitirse.

Ejemplo

Véase también

[virtual]
escribe caracteres a la secuencia de salida asociada desde el área de escritura
(función miembro protegida virtual de std::basic_streambuf<CharT,Traits> )
[virtual]
lee del archivo asociado
(función miembro protegida virtual)