C++ named requirements: FormattedInputFunction
From cppreference.net
Anforderungen
Eine FormattedInputFunction ist eine Stream-Eingabefunktion, die Folgendes ausführt:
-
Konstruiert ein Objekt vom Typ
basic_istream::sentry
mit automatischer Speicherdauer und mit dem
noskipwsArgument auf false gesetzt, was folgendes ausführt:
-
-
Wenn
eofbit
oder
badbit
im Eingabestrom gesetzt sind, wird ebenfalls
failbitgesetzt, und wenn Ausnahmen fürfailbitin der Exception-Maske dieses Eingabestroms aktiviert sind ( ( exceptions ( ) & failbit ) ! = 0 ), wird ios_base::failure ausgelöst. - Leert den mit tie() verknüpften Ausgabestrom, falls zutreffend.
-
Wenn das
ios_base::skipws-Flag für diesen Eingabestrom gesetzt ist, extrahiert und verwirft Zeichen aus dem Eingabestrom, bis eine der folgenden Bedingungen erfüllt ist:
-
- Das nächste verfügbare Zeichen im Eingabestrom ist kein Leerzeichen, wie durch das std::ctype -Facet der aktuell im Eingabestrom verwendeten Locale geprüft. Das Nicht-Leerzeichen wird nicht extrahiert.
-
Das Ende des Stroms wird erreicht, wobei
failbitundeofbitgesetzt werden, und wenn der Strom für Ausnahmen bei einem dieser Bits aktiviert ist, wird ios_base::failure ausgelöst.
-
Wenn
eofbit
oder
badbit
im Eingabestrom gesetzt sind, wird ebenfalls
-
Überprüft den Status des Sentry durch Aufruf von
sentry::operator bool(), was äquivalent zu basic_ios::good ist. - Falls der Sentry false zurückgab oder der Konstruktor des Sentry eine Ausnahme warf, findet keine Eingabe statt.
- Falls der Sentry true zurückgab, führt die Eingabe durch als ob durch Aufruf von rdbuf ( ) - > sbumpc ( ) oder rdbuf ( ) - > sgetc ( ) .
-
-
wenn das Ende des Streams erreicht wird (der Aufruf von
rdbuf
(
)
-
>
sbumpc
(
)
oder
rdbuf
(
)
-
>
sgetc
(
)
gibt
Traits
::
eof
(
)
zurück), wird
eofbitgesetzt. Wenn Exceptions füreofbitin der Exception-Maske dieses Streams aktiviert sind ( ( exceptions ( ) & eofbit ) ! = 0 ), wird ios_base::failure geworfen. -
wenn während der Eingabe eine Exception geworfen wird, wird
badbitim Eingabestream gesetzt. Wenn Exceptions fürbadbitin der Exception-Maske dieses Streams aktiviert sind ( ( exceptions ( ) & badbit ) ! = 0 ), wird die Exception ebenfalls erneut geworfen. - Wenn keine Exception geworfen wurde, gibt * this zurück.
-
wenn das Ende des Streams erreicht wird (der Aufruf von
rdbuf
(
)
-
>
sbumpc
(
)
oder
rdbuf
(
)
-
>
sgetc
(
)
gibt
Traits
::
eof
(
)
zurück), wird
- In jedem Fall, ob durch Exception oder Rückgabe beendet, wird der Destruktor des Sentry aufgerufen, bevor diese Funktion verlassen wird.
Standardbibliothek
Die folgenden Standardbibliotheksfunktionen sind 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>>, wenn auf den Rückgabewert von std::get_money aufgerufen
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 160 | C++98 |
der Prozess zur Bestimmung, ob die gefangene Exception
erneut geworfen wird, erwähnte eine nicht existierende Funktion
exception()
|
korrigiert zu exceptions() |