union Foo { int val = 42; static const int sVal1 = -42; static Foo sVal2; }; Foo Foo::sVal2{}; namespace { union Bar { int val = 137; static const int sVal1 = -137; static Bar sVal2; }; Bar Bar::sVal2{}; } // namespace int main() { Foo foo; Bar bar; auto sum = Bar::sVal1 + Foo::sVal1 + Foo::sVal2.val + Bar::sVal2.val; return 0; }