https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93169
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Jonathan Wakely from comment #3) > (In reply to Andrew Pinski from comment #2) > > (In reply to Andrew Pinski from comment #1) > > > I want to say b<e>::c::c is not a valid constexpr constructor. Because > > > b<e>::c's field h's constructor is not constexr. If that is the case, > > > then > > > should be accepts invalid code. > > It's a template. If the constructor doesn't meet the requirements of a > constexpr constructor, then the constexpr specifier is just ignored. So it's > not invalid. Oh, ok. I should really get familiar with all of the newer C++ features; I have not learned enough about anything past C++03 :).