C++ named requirements: StandardLayoutType (since C++11)
From cppreference.net
C++
C++ named requirements
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gibt an, dass ein Typ ein Standard-Layout-Typ ist. Standard-Layout-Typen sind nützlich für die Kommunikation mit Code, der in anderen Programmiersprachen geschrieben wurde.
Hinweis: Der Standard definiert keine benannte Anforderung mit diesem Namen. Dies ist eine Typkategorie, die durch die Kernsprache definiert wird. Sie wird hier nur der Konsistenz halber als benannte Anforderung aufgeführt.
Inhaltsverzeichnis |
Anforderungen
Die folgenden Typen werden zusammen als Standard-Layout-Typen bezeichnet:
- Skalare Typen
- Standard-Layout-Klassentypen
- Arrays solcher Typen
- CV-qualifizierte Versionen dieser Typen
Eigenschaften
Siehe Standard-layout .
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 |
|---|---|---|---|
| CWG 1672 | C++11 |
Regel für erstes nicht-statisches Datenelement ignoriert
Existenz leerer Basisklassen |
Regel für erstes nicht-statisches Datenelement
rekursiv gemacht |
| CWG 1813 | C++11 |
Klasse mit einem in einer indirekten Basis definierten Member
war technisch nicht standard-layout |
Alle Member-Deklarationen müssen
in derselben Klasse sein |
| CWG 2120 | C++11 |
Array als erstes Member wurde nicht berücksichtigt beim
Vergleichen des ersten Elementtyps mit Typ einer Basis |
Array-Member werden berücksichtigt |
Siehe auch
|
(C++11)
|
prüft, ob ein Typ ein
Standard-Layout
Typ ist
(Klassen-Template) |