C++ named requirements: FormattedInputFunction
From cppreference.net
Exigences
Une FormattedInputFunction est une fonction d'entrée de flux qui effectue les opérations suivantes :
-
Construit un objet de type
basic_istream::sentry
avec une durée de stockage automatique et avec l'argument
noskipwsdéfini à false , ce qui effectue les opérations suivantes :
-
-
si
eofbit
ou
badbit
sont positionnés sur le flux d'entrée, positionne également le
failbitet si les exceptions surfailbitsont activées dans le masque d'exceptions de ce flux d'entrée ( ( exceptions ( ) & failbit ) ! = 0 ), lance ios_base::failure . - vide le tampon du flux de sortie associé (tie()), le cas échéant.
-
si l'indicateur
ios_base::skipwsest positionné sur ce flux d'entrée, extrait et ignore les caractères du flux d'entrée jusqu'à ce que l'une des conditions suivantes soit vraie :
-
- le prochain caractère disponible dans le flux d'entrée n'est pas un caractère d'espacement, tel que testé par le facet std::ctype des paramètres régionaux actuellement imbriqués dans ce flux d'entrée. Le caractère non-espace n'est pas extrait.
-
la fin du flux est atteinte, auquel cas
failbiteteofbitsont positionnés et si le flux est activé pour les exceptions sur l'un de ces bits, ios_base::failure est lancée.
-
si
eofbit
ou
badbit
sont positionnés sur le flux d'entrée, positionne également le
-
Vérifie l'état de la sentinelle en appelant
sentry::operator bool(), ce qui équivaut à basic_ios::good . - Si la sentinelle a retourné false ou si le constructeur de la sentinelle a levé une exception, aucune entrée n'a lieu.
- Si la sentinelle a retourné true , effectue l'entrée comme en appelant rdbuf ( ) - > sbumpc ( ) ou rdbuf ( ) - > sgetc ( ) .
-
-
si la fin du flux est atteinte (l'appel à
rdbuf
(
)
-
>
sbumpc
(
)
ou
rdbuf
(
)
-
>
sgetc
(
)
retourne
Traits
::
eof
(
)
), positionne
eofbit. Si les exceptions sureofbitsont activées dans le masque d'exception de ce flux ( ( exceptions ( ) & eofbit ) ! = 0 ), lance ios_base::failure . -
si une exception est levée pendant l'entrée, positionne
badbitdans le flux d'entrée. Si les exceptions surbadbitsont activées dans le masque d'exception de ce flux ( ( exceptions ( ) & badbit ) ! = 0 ), l'exception est également relancée. - Si aucune exception n'a été levée, retourne * this .
-
si la fin du flux est atteinte (l'appel à
rdbuf
(
)
-
>
sbumpc
(
)
ou
rdbuf
(
)
-
>
sgetc
(
)
retourne
Traits
::
eof
(
)
), positionne
- En tout état de cause, que la terminaison se fasse par exception ou par retour, le destructeur du sentinelle est appelé avant de quitter cette fonction.
Bibliothèque standard
Les fonctions standards suivantes de la bibliothèque sont des FormattedInputFunction s .
- 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>>, lorsqu'appelé sur la valeur de retour de std::get_money
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Applicable à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 160 | C++98 |
le processus de détermination si l'exception attrapée
est relancée mentionnait une fonction inexistante
exception()
|
corrigé en exceptions() |