https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66656
Daniel Krügler <daniel.kruegler at googlemail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |daniel.kruegler@googlemail. | |com --- Comment #1 from Daniel Krügler <daniel.kruegler at googlemail dot com> --- The compiler/linker is right: You still need to provide a definition for the second static data member. Providing an initializer does not provide such a definition. To fix your problem, just add the line constexpr X::item X::arr1[]; to your code. This is not a defect.