http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51633
--- Comment #4 from Dodji Seketeli <dodji at gcc dot gnu.org> 2012-01-11 13:22:55 UTC --- It seems to me that the first example might actually be considered as valid. One non-fully clear reason why it could have been considered invalid in the first place is tat the constructor of B does not explicitly initialize a. But then A doesn't have any member. So we can say in the end that "B doesn't have any non-initialized member". And that can be argued to comply with this relevant pre-requisite for constexpr constructors in [dcl.constexpr]/8: every non-static data member and base class sub-object shall be initialized I have discussed this with Jason off-line and he seems to agree. Thought anyone?