std::ios_base:: Init
|
class
Init
;
|
||
Diese Klasse wird verwendet, um sicherzustellen, dass die standardmäßigen C++-Streams ( std::cin , std::cout , etc.) ordnungsgemäß initialisiert und zerstört werden. Die Klasse verfolgt, wie viele Instanzen von ihr erstellt werden, und initialisiert die C++-Streams, wenn die erste Instanz konstruiert wird, sowie leert die Ausgabestreams, wenn die letzte Instanz zerstört wird.
Der Header
<iostream>
verhält sich so, als ob er (direkt oder indirekt) eine Instanz von
std::ios_base::Init
mit statischer Speicherdauer definiert: Dies macht es sicher, auf die Standard-E/A-Streams in den Konstruktoren und Destruktoren von statischen Objekten mit
geordneter Initialisierung
zuzugreifen (sofern
<iostream>
in der Übersetzungseinheit vor der Definition dieser Objekte eingebunden wurde).
|
Jedes
C++-Bibliotheksmodul
in einer
Hosted-Implementierung
verhält sich so, als ob es eine
Interface-Einheit
enthält, die eine
nicht exportierte
Folglich ist die Definition dieser Variable erscheinungsgeordnet vor jeder Deklaration, die auf den Importpunkt eines C++-Bibliotheksmoduls folgt. Die Existenz einer solchen Definition ist für ein Programm nicht beobachtbar, das keine der Standard-Iostream-Objekte referenziert. |
(since C++23) |
Memberfunktionen
|
(constructor)
|
initialisiert die Standard-C++-Streams, falls sie noch nicht erstellt wurden
(public member function) |
|
(destructor)
|
leert die Standard-C++-Streams, falls
*
this
die letzte zu zerstörende Instanz ist
(public member function) |
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 1123 | C++98 |
das Verhalten des Konstruktors und des Destruktors
hängt von einem nur zur Darstellung dienenden statischen Datenelement
init_cnt
ab
|
Abhängigkeit entfernt |
Siehe auch
|
liest vom standard C-Eingabestream
stdin
(globales Objekt) |
|
|
schreibt in den standard C-Ausgabestream
stdout
(globales Objekt) |
|
|
schreibt in den standard C-Fehlerstream
stderr
, ungepuffert
(globales Objekt) |
|
|
schreibt in den standard C-Fehlerstream
stderr
(globales Objekt) |