<分区>
在这种情况下,Clang 似乎没有做空基类优化:
struct A { }; //sizeof(A) == 1 -> OK
struct B : public A { int _intValue; };//sizeof(B) == 4 -> OK, EBCO works here
struct C : public A { B _bValue; }; //sizeof(C) == 8 -> ??? Not OK
似乎 g++ 的行为方式相同(或相似)。这是正常的吗?我认为 EBCO 应该在这里发挥作用。
我是否遗漏了一些会使其在这里成为非法的东西?