C++ benannte Anforderungen: StandardLayoutType (seit C++11)
Von cppreference.com
< cpp | benannte req
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 von der Kernsprache definierte Typkategorie. Sie ist hier nur der Konsistenz halber als benannte Anforderung enthalten.
Inhalt |
[bearbeiten] Anforderungen
Die folgenden Typen werden kollektiv als Standard-Layout-Typen bezeichnet
- Skalartypen
- Standard-Layout-Klassentypen
- Arrays solcher Typen
- CV-qualifizierte Versionen dieser Typen
[bearbeiten] Eigenschaften
Siehe Standard-Layout.
[bearbeiten] 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 das erste nicht-statische Datenmitglied ignoriert Existenz von leeren Basisklassen |
Regel für das erste nicht-statische Datenmitglied rekursiv gemacht |
| CWG 1813 | C++11 | Klasse mit einem Mitglied, das in einer indirekten Basis definiert ist war technisch kein Standard-Layout |
alle Mitgliedsdeklarationen müssen sein in derselben Klasse |
| CWG 2120 | C++11 | Array als erstes Mitglied wurde nicht berücksichtigt, wenn der Typ des ersten Elements mit dem Typ einer Basis verglichen wurde |
Array-Mitglieder werden berücksichtigt |
[bearbeiten] Siehe auch
| (C++11) |
prüft, ob ein Typ ein Standardlayout-Typ ist (Klassenvorlage) |