constexpr struct member initialisation
问题 This code compiles: struct Info { constexpr Info(bool val) : counted(false), value(unsigned(val)) {} constexpr Info(unsigned val) : counted(true), value(val) {} bool counted; unsigned value; }; constexpr const auto data = std::array{ Info{true}, Info{42u} }; struct Foo { constexpr static inline const auto data = std::array{ Info{true}, Info{42u} }; }; This code does not: struct Foo { struct Info { constexpr Info(bool val) : counted(false), value(unsigned(val)) {} constexpr Info(unsigned val)