C++ named requirements: StandardLayoutType (since C++11)
From cppreference.net
C++
C++ named requirements
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
指定某个类型为标准布局类型。标准布局类型在与使用其他编程语言编写的代码进行交互时非常有用。
注意:标准并未定义以此命名的具名要求。这是由核心语言定义的类型类别。此处将其作为具名要求收录仅为保持一致性。
目录 |
要求
以下类型统称为 标准布局类型 :
属性
参见 标准布局 。
缺陷报告
以下行为变更缺陷报告被追溯应用于先前发布的C++标准。
| 缺陷报告 | 应用于 | 发布时的行为 | 正确行为 |
|---|---|---|---|
| CWG 1672 | C++11 |
首个非静态数据成员规则忽略了
空基类的存在 |
首个非静态数据成员规则
改为递归处理 |
| CWG 1813 | C++11 |
在间接基类中定义成员的类
技术上不符合标准布局 |
所有成员声明必须
位于同一类中 |
| CWG 2120 | C++11 |
比较首个元素类型与基类类型时
未考虑数组作为首个成员的情况 |
需要考虑数组成员 |
参见
|
(C++11)
|
检查类型是否为
标准布局
类型
(类模板) |