C++中最小的标准兼容对象大小?

Alo*_*ave 2 c++ sizeof

我知道空类的大小由标准定义为非零.在大多数实现中,它通常是 1个字节.
但是,C++标准是否指定了对象的最小可能大小?假设按照标准,空类对象的大小至少为 1个字节,这是合乎逻辑的.

R. *_*des 8

对象的最小大小为零(§1.8/ 5).但是,完整对象的大小必须始终为非零,并且该大小必须至少为1.

除非它是位字段(9.6),否则最派生的对象应具有非零大小并且应占用一个或多个存储字节.基类子对象可以具有零大小.平凡可复制或标准布局类型(3.9)的对象应占用连续的存储字节.

由于所谓的空基类优化 EBCO,空类型的基类子对象可以具有零大小.