C++ named requirements: StandardLayoutType (since C++11)
From cppreference.net
C++
C++ named requirements
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Especifica que un tipo es un tipo de diseño estándar. Los tipos de diseño estándar son útiles para comunicarse con código escrito en otros lenguajes de programación.
Nota: el estándar no define un requisito nombrado con este nombre. Esta es una categoría de tipo definida por el lenguaje central. Se incluye aquí como un requisito nombrado solo por consistencia.
Contenidos |
Requisitos
Los siguientes tipos se denominan colectivamente standard-layout types :
- tipos escalares
- tipos de clase de diseño estándar
- arreglos de dichos tipos
- versiones calificadas cv de estos tipos
Propiedades
Ver Standard-layout .
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| CWG 1672 | C++11 |
regla del primer miembro de datos no estático ignorada
existencia de clases base vacías |
regla del primer miembro de datos no estático
hecha recursiva |
| CWG 1813 | C++11 |
clase con un miembro definido en una base indirecta
no era técnicamente standard-layout |
todas las declaraciones de miembros deben estar
en la misma clase |
| CWG 2120 | C++11 |
array como primer miembro no se consideraba al
comparar el tipo del primer elemento con el tipo de una base |
los miembros array son considerados |
Véase también
|
(C++11)
|
verifica si un tipo es un tipo de
diseño estándar
(plantilla de clase) |