What is it about having an aggregate public base class (or even multiple aggregate public base classes) that would make a class lose the nice properties of aggregate classes
According to http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3308.pdf
Despite the clear intentions of the standard, type B is not a literal type:
struct A {}; struct B : A {};
This is because its constructor is not implicitly defined until it is odr-used, and until that point it has no constexpr constructors.
Honestly not sure what this means, though.