Compartir a través de


basic_streambuf::overflow

Una función virtual protegida que puede llamar cuando un nuevo carácter se incrusta en un búfer completo.

virtual int_type overflow(
   int_type _Meta = traits_type::eof( )
);

Parámetros

  • _Meta
    El carácter que se va a insertar en el búfer, o traits_type::EOF.

Valor devuelto

Si la función no se realizará correctamente, devuelve traits_type:: EOF o produce una excepción.De lo contrario, devuelve traits_type::not_eof(_Meta).el comportamiento predeterminado es devolver traits_type:: EOF.

Comentarios

Si el _Meta no es igual a traits_type:: EOF, la función virtual protegida de miembro se esfuerza para insertar el elemento traits_type::to_char_type(_Meta) en el flujo de salida.Puede hacerlo de varias maneras:

  • Si write position está disponible, puede almacenar el elemento en la escritura colocar y aumentar el puntero siguiente para el búfer de salida.

  • Puede que una escritura colocar disponibles asignando el nuevo o adicional almacenamiento para el búfer de salida.

  • Puede que una escritura colocar disponibles colocando, en algún destino externo, a algunos o a todos los elementos de tipo entre el principio y punteros siguientes para el búfer de salida.

La función virtual de desbordamiento, así como las funciones de sincronización y de subdesbordamiento , define las características de la clase streambuf-derivada.Cada clase derivada puede implementar el desbordamiento de manera diferente, pero la interfaz con el tipo de la secuencia de llamada es el mismo.

La función de overflow frecuentemente llaman las funciones públicas de streambuf como sputc y sputn cuando el área pone es completa, pero otras clases, incluidas las clases de la secuencia, pueden llamar overflow en cualquier momento.

La función utiliza los caracteres del área situada entre pbase y los punteros de pptr y después restablece el área put.La función de overflow también debe utilizar nCh (si nCh no es EOF), o puede elegir poner el carácter en la nueva área pone de modo que se usa en la llamada siguiente.

La definición de utiliza varía entre clases derivadas.Por ejemplo, la clase de filebuf escribe los caracteres en un archivo, mientras que la clase de strstreambuf los conservará en el búfer y (si el búfer se designa como dinámico) expanda el búfer en respuesta a una llamada a provocar.Esta extensión se logra libera el antiguo búfer y reemplazarlo con nuevo, mayor.Los punteros se ajustan según sea necesario.

Requisitos

encabezado: <streambuf>

espacio de nombres: std

Vea también

Referencia

basic_streambuf Class

programación iostream

convenciones de iostreams