Espacios de nombres
Variantes

Requisitos denominados de C++: FormattedInputFunction

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

 

Requisitos

Una FormattedInputFunction es una función de flujo de entrada que realiza lo siguiente:

  • Construye un objeto de tipo basic_istream::sentry con duración de almacenamiento automática y con el argumento noskipws establecido a false, que realiza los siguiente:
  • si eofbit o badbit están establecidos en el flujo de entrada, también se establece failbit, y, si las excepciones failbit están habilitadas en la máscara de excepciones de este flujo de entrada ((exceptions() & failbit) != 0), lanza la excepción ios_base::failure.
  • vacía el flujo de salida ligado por tie(), si corresponde.
  • si el indicador ios_base::skipws está establecido en el flujo de entrada, extrae y descarta caracteres del flujo de entrada hasta que una de las condiciones siguientes sea verdadera:
  • el siguiente carácter disponible en el flujo de entrada no es un carácter de espacio en blanco, como se prueba mediante la faceta std::ctype de la configuración regional actualmente imbuida en este flujo de entrada. El carácter que no es un espacio en blanco no se extrae.
  • se alcanza el final del flujo, en cuyo caso se establecen failbit y eofbit y, si el flujo está activado por excepciones de uno de esos bits, se lanza la excepción ios_base::failure.
  • Comprueba el estado del centinela llamando a sentry::operator bool(), que es equivalente a basic_ios::good.
  • Si el centinela devolvió false o el constructor lanzó una excepción, no se realiza ninguna entrada.
  • Si el centinela devolvió true, se realiza la entrada como con una llamada a rdbuf()->sbumpc() o rdbuf()->sgetc().
  • si se alcanza el final del flujo (la llamada a rdbuf()->sbumpc() o rdbuf()->sgetc() devuelve Traits::eof()), estabelce eofbit. Si la excepción eofbit está habilitada en la máscara de excepciones de este flujo ((exceptions() & eofbit) != 0), se lanza la excepción ios_base::failure.
  • si se lanza una excepción durante la entrada, se establece badbit en el flujo de entrada. Si las excepciones badbit están habilitadas en la máscara de excepciones de este flujo ((exceptions() & badbit) != 0), también se vuelve a lanzar la excpeción.
  • Si no se lanza ninguna excepción, devuelve *this.
  • En cualquier caso, se termine por excepción o retornando, se llama al destructor del centinela antes de salir de esta función.

Biblioteca estándar

Las siguientes funciones de la biblioteca estándar son FormattedInputFunction.

Informes de defectos

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

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
LWG 160 C++98 El proceso de determinar si la excepción capturada se
vuelve a lanzar menciona una función inexistente, exception().
Se corrigió a exceptions().