https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85775
markus <markus-t314 at gmx dot de> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |markus-t314 at gmx dot de --- Comment #2 from markus <markus-t314 at gmx dot de> --- Maybe a simpler example: struct Foo { int num; }; struct S { static Foo f; }; // error: 'S' in 'struct Foo' does not name a type //Foo ::S::f = Foo{23}; // warning: unnecessary parentheses in declaration of 'f' [-Wparentheses] Foo (::S::f) = Foo{23}; Parantheses are necessary if global scope resolution is wanted/needed, otherwise they would refer to the class Foo. https://godbolt.org/z/7d39rbv7o