在这种情况下,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应该在这里踢。
我是否遗漏了一些会使这里成为非法的东西?