[ Web Proxy ]
URL:
Viewing: http://es.cppreference.com/cpp/named_req/FormattedOutputFunction [Back]  [Original]

Requisitos denominados de C++: FormattedOutputFunction - cppreference.com
cppreference.com
Espacios de nombres
Variantes

Requisitos denominados de C++: FormattedOutputFunction

De cppreference.com
 
 
Requisitos denominados de C++
Nmeros aleatorios
Concurrencia
(C++11)
(C++11)
Rangos
Vista multidimensional
Otros

 

Requisitos

Una FormattedOutputFunction es una funcin de flujo de salida que realiza lo siguiente:

  • Construye un objeto de tipo basic_ostream::sentry con duracin automtica de almacenamiento, lo que realiza lo siguiente:
  • Si eofbit o badbit se activan en el flujo de salida, tambin se activa el failbit, y si se habilitan excepciones en failbit para la exception mask de este flujo de entrada ((exceptions() & failbit) != 0), lanza ios_base::failure.
  • Vaca el flujo de salida atado, si aplica.
  • Valida el estado del centinela por medio del llamado a sentry::operator bool(), lo que equivale a basic_ios::good.
  • Si el centinela devolvi false, o el constructor del centinela lanz una excepcin, no se genera ninguna salida.
  • Si el centinela devolvi true, intenta crear la salida deseada insertando los caracteres en el flujo de salida, como si fuera un llamado a rdbuf()->sputc(). Otros miembros pblicos de std::basic_ostream tambin pueden ser usados, pero nunca sern llamados los miembros virtuales de rdbuf(), a excepcin de overflow(), xsputn() y sync().
  • Si la salida no se pudo generar, activa failbit. Si se habilitan excepciones en failbit para la exception mask de este flujo ((exceptions() & failbit) != 0), lanza ios_base::failure.
  • Si se lanza una excepcin en la salida, se activa badbit en el flujo de salida. Si se habilitan excepciones en badbit para la exception mask ((exceptions() & badbit) != 0) de este flujo, la excepcin es relanzada.
  • Si no se lanza ninguna excepcin, devuelve *this.
  • En cualquier caso, ya sea terminando por excepcin o devolviendo un valor, el destructor del centinela es llamado antes de salir de esta funcin.

Relleno

Las funciones de salida formateada determinan el relleno de acuerdo a std::num_put::do_put() etapa 3.

(hasta C++14)

Si una funcin de salida formateada de un flujo os determina que debe haber relleno, lo hace de la siguiente manera.

Dada una secuencia seq de caracteres CharT, donde CharT es el tipo contenedor de caracteres de os, si la longitud de seq es menor que os.width(), entonces se agregan suficientes copias de os.fill() a esta secuencia, segn se requiera rellenar hasta el ancho de los caracteres os.width().

Si (os.flags() & std::ios_base::adjustfield) == std::ios_base::left es true, los caracteres de relleno se ubicarn despus de la secuencia; de lo contrario, se ubicarn antes de la secuencia.

(desde C++14)

Biblioteca estndar

Las siguientes son funciones de la biblioteca estndar que corresponden a funciones FormattedOutputFunction.

(desde C++17)
excepto que (el os dado es un objeto de flujo de salida):
  • Cualquier excepcin lanzada por el llamado a std::vformat se propaga sin importar el valor de os.exceptions() y sin activar ios_base::badbit en el estado de error de os;
  • Si la insercin en os falla, se llama a os.setstate(ios_base::badbit) (lo que puede lanzar ios_base::failure).
(desde C++23)

Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estndares de C++ publicados anteriormente.

ID Aplicado a Comportamiento segn lo publicado Comportamiento correcto
LWG 160 C++98 El proceso de determinar si la excepcin atrapada
es relanzada o no, haca mencin a una
funcin exception() no existente
Corregido a exceptions()
LWG 165 C++98 El nico miembro virtual al que se le
permite ser llamado por rdbuf() era overflow()
Tambin se les permite a
xsputn() y sync()

Web Proxy Viewer  |  New URL  |  Original Page