Законно ли иметь поля с одинаковыми именами в разных анонимных объединениях в одном объединении?
union Foo { union { int bar; }; union { int bar; }; };
Этот код не компилируется GCC, но отлично работает в MSVC.
Это не разрешено стандартом C ++.Любой компилятор, который компилирует этот код, не соответствует.
См. 10.4.1 / 1:
Имена членов анонимного объединения должны отличаться от имен любыхдругая сущность в области, в которой объявлен анонимный союз.