Namensräume
Varianten
Aktionen

std::ios_base::Init

Von cppreference.com
< cpp‎ | io‎ | ios base
 
 
 
 
class Init;

Diese Klasse wird verwendet, um sicherzustellen, dass die Standard-C++-Streams (std::cin, std::cout usw.) korrekt initialisiert und deinitialisiert werden. Die Klasse verfolgt, wie viele Instanzen davon erstellt werden, und initialisiert die C++-Streams, wenn die erste Instanz konstruiert wird, sowie leert die Ausgabestreams, wenn die letzte Instanz zerstört wird.

Die Header-Datei <iostream> verhält sich so, als würde sie eine Instanz von std::ios_base::Init mit statischer Speicherklasse definieren (direkt oder indirekt): Dies macht es sicher, auf die Standard-I/O-Streams in den Konstruktoren und Destruktoren von statischen Objekten mit geordneter Initialisierung zuzugreifen (solange <iostream> in der Übersetzungseinheit vor der Definition dieser Objekte eingebunden wurde).

Jedes C++-Bibliotheksmodul in einer gehosteten Implementierung verhält sich so, als enthielte es eine Schnittstelleneinheit, die eine unexportierte std::ios_base::Init Variable mit geordneter Initialisierung definiert.

Infolgedessen ist die Definition dieser Variablen vor jeder Deklaration, die nach dem Importzeitpunkt eines C++-Bibliotheksmoduls folgt, vorrangig geordnet. Ob eine solche Definition existiert, ist für ein Programm, das keine der Standard-Iostream-Objekte referenziert, nicht beobachtbar.

(seit C++23)

[editieren] Memberfunktionen

(Konstruktor)
Initialisiert die Standard-C++-Streams, falls diese noch nicht erstellt wurden
(öffentliche Memberfunktion)
(Destruktor)
Leert die Standard-C++-Streams, wenn *this die letzte zu zerstörende Instanz ist
(öffentliche Memberfunktion)

[editieren] 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ängen von einem expositions-only statischen Datenmitglied init_cnt ab
entfernte die Abhängigkeit

[editieren] Siehe auch

liest vom Standard-C-Eingabestrom stdin
(globales Objekt)[bearbeiten]
schreibt in den Standard-C-Ausgabestrom stdout
(globales Objekt)[bearbeiten]
schreibt in den Standard-C-Fehlerstrom stderr, unbuffered
(globales Objekt)[bearbeiten]
schreibt in den Standard-C-Fehlerstrom stderr
(globales Objekt)[bearbeiten]