Namensräume
Varianten
Aktionen

C++ benannte Anforderungen: StandardLayoutType (seit C++11)

Von cppreference.com
 
 
C++ benannte Anforderungen
 

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

[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

prüft, ob ein Typ ein Standardlayout-Typ ist
(Klassenvorlage) [bearbeiten]