Namespaces
Variants

C++ named requirements: FormattedInputFunction

From cppreference.net
C++ named requirements

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 noskipws dé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 failbit et si les exceptions sur failbit sont 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::skipws est 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 failbit et eofbit sont positionnés et si le flux est activé pour les exceptions sur l'un de ces bits, ios_base::failure est lancée.
  • 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 sur eofbit sont 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 badbit dans le flux d'entrée. Si les exceptions sur badbit sont 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 .
  • 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 .

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()