引用[class.prop]/3中的标准:
如果满足以下条件,则S 类是标准布局类:
- 对所有非静态数据成员具有相同的访问控制,
我的理解(也许我错了)一直是 C++ 访问控制不会以任何方式影响类的物理布局——它们纯粹是一种增强封装的编译时机制。(或者换句话说,将成员从私有更改为公共并不是 ABI 破坏性更改。)
如果是这种情况,那么标准布局类的这种限制的原因是什么?
引用[class.prop]/3中的标准:
如果满足以下条件,则S 类是标准布局类:
- 对所有非静态数据成员具有相同的访问控制,
我的理解(也许我错了)一直是 C++ 访问控制不会以任何方式影响类的物理布局——它们纯粹是一种增强封装的编译时机制。(或者换句话说,将成员从私有更改为公共并不是 ABI 破坏性更改。)
如果是这种情况,那么标准布局类的这种限制的原因是什么?