C++ 命名要求: StandardLayoutType (自 C++11 起)
指定类型是标准布局类型。标准布局类型对于与其他编程语言编写的代码进行通信非常有用。
注意:标准没有定义具有此名称的命名要求。这是由核心语言定义的一种类型类别。为了保持一致性,此处将其作为命名要求包含。
要求
以下类型统称为 标准布局类型
属性
参见标准布局。
缺陷报告
以下改变行为的缺陷报告已追溯应用于先前发布的 C++ 标准。
DR | 应用于 | 发布时的行为 | 正确行为 |
---|---|---|---|
CWG 1672 | C++11 | 第一个非静态数据成员规则忽略了空基类的存在 | 第一个非静态数据成员规则变为递归的 |
CWG 1813 | C++11 | 在间接基类中定义的成员的类在技术上不是标准布局 | 所有成员声明必须在同一个类中 |
CWG 2120 | C++11 | 将数组作为第一个成员时,在比较第一个元素类型与基类类型时未考虑数组 | 考虑数组成员 |