Namespaces
Variants

std::ios_base::ios_base

Von de.cppreference.net
 
 
 
 
private:
ios_base( const ios_base& );
(1) (bis C++11)
public:
ios_base( const ios_base& ) = delete;
(seit C++11)
protected:
ios_base();
(2)
1) Der Kopierkonstruktor ist privat(bis C++11)gelöscht(seit C++11): Streams sind nicht kopierbar.
2) Der Standardkonstruktor ist geschützt: Nur abgeleitete Klassen können std::ios_base. Der interne Zustand ist nach der Konstruktion undefiniert. Die abgeleitete Klasse muss std::basic_ios::init() aufrufen, um die Initialisierung vor der ersten Verwendung oder vor dem Destruktor abzuschließen; andernfalls ist das Verhalten undefiniert.

Hinweise

Gleiches gilt für die Konstruktoren der nächsten Klasse in der I/O-Hierarchie, std::basic_ios . Weiter abgeleitete Klassen ( std::istream und std::ostream ) werden stets mit einem konkreten Streampuffer-Objekt konstruiert und rufen std::basic_ios::init() , möglicherweise mehrfach, auf, um die Initialisierung ihrer virtuellen Basis abzuschließen.

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 50 C++98 der Kopierkonstruktor war nicht spezifiziert als privat spezifiziert
LWG 220 C++98 das Verhalten beim Zerstören eines std::ios_base
Objekts vor dem Aufruf von init() war nicht klar
das Verhalten ist
in diesem Fall undefiniert
LWG 1249 C++98 Initialisierung musste nicht vor der ersten Verwendung abgeschlossen sein muss ebenfalls abgeschlossen sein