根据C标准:
标准布局类是一个类: - 没有类型为非标准布局类(或此类类型的数组)或引用的非静态数据成员 .
引用的哪些属性会阻止具有引用成员的类包含在标准布局类的定义中?
标准布局类是关于为内存中的特定类型定义良好的布局 . 在C中,引用不具有任何存储,可以通过一致的程序以明确定义的方式访问,即使实现通常必须具有某种特定于实现的存储 .
因此,将引用成员放在必须具有标准布局的内容中是没有意义的 .
关于C内存模型的部分标准中有一个非规范性的注释,它提到了这一点:
[注意:语言的各种功能,例如引用和虚函数,可能涉及程序无法访问但由实现管理的其他内存位置 . - 尾注]
1 回答
标准布局类是关于为内存中的特定类型定义良好的布局 . 在C中,引用不具有任何存储,可以通过一致的程序以明确定义的方式访问,即使实现通常必须具有某种特定于实现的存储 .
因此,将引用成员放在必须具有标准布局的内容中是没有意义的 .
关于C内存模型的部分标准中有一个非规范性的注释,它提到了这一点: