Requisitos denominados de C++: FormattedInputFunction
De cppreference.com
Requisitos
Una FormattedInputFunction es una funcin de flujo de entrada que realiza lo siguiente:
- Construye un objeto de tipo basic_istream::sentry con duracin de almacenamiento automtica y con el argumento
noskipwsestablecido afalse, que realiza los siguiente:
- si eofbit o badbit estn establecidos en el flujo de entrada, tambin se establece
failbit, y, si las excepcionesfailbitestn habilitadas en la mscara de excepciones de este flujo de entrada ((exceptions() & failbit) != 0), lanza la excepcin ios_base::failure. - vaca el flujo de salida ligado por tie(), si corresponde.
- si el indicador
ios_base::skipwsest 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 carcter disponible en el flujo de entrada no es un carcter de espacio en blanco, como se prueba mediante la faceta std::ctype de la configuracin regional actualmente imbuida en este flujo de entrada. El carcter que no es un espacio en blanco no se extrae.
- se alcanza el final del flujo, en cuyo caso se establecen
failbityeofbity, si el flujo est activado por excepciones de uno de esos bits, se lanza la excepcin ios_base::failure.
- si eofbit o badbit estn establecidos en el flujo de entrada, tambin se establece
- Comprueba el estado del centinela llamando a
sentry::operator bool(), que es equivalente a basic_ios::good. - Si el centinela devolvi
falseo el constructor lanz una excepcin, no se realiza ninguna entrada. - Si el centinela devolvi
true, se realiza la entrada como con una llamada ardbuf()->sbumpc()ordbuf()->sgetc().
- si se alcanza el final del flujo (la llamada a
rdbuf()->sbumpc()ordbuf()->sgetc()devuelveTraits::eof()), estabelceeofbit. Si la excepcineofbitest habilitada en la mscara de excepciones de este flujo ((exceptions() & eofbit) != 0), se lanza la excepcin ios_base::failure. - si se lanza una excepcin durante la entrada, se establece
badbiten el flujo de entrada. Si las excepcionesbadbitestn habilitadas en la mscara de excepciones de este flujo ((exceptions() & badbit) != 0), tambin se vuelve a lanzar la excpecin. - Si no se lanza ninguna excepcin, devuelve
*this.
- si se alcanza el final del flujo (la llamada a
- En cualquier caso, se termine por excepcin o retornando, se llama al destructor del centinela antes de salir de esta funcin.
Biblioteca estndar
Las siguientes funciones de la biblioteca estndar son FormattedInputFunction.
- basic_istream::operator>>(int, long, double, void*, bool)
- operator>>(std::basic_istream, char&)
- operator>>(std::basic_istream, char*)
- operator>>(std::basic_istream, std::bitset)
- operator>>(std::basic_istream, std::string)
operator>>, cuando se llama en el valor de retorno de std::get_money
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 capturada se vuelve a lanzar menciona una funcin inexistente, exception().
|
Se corrigi a exceptions(). |