Поля с одинаковыми именами в разных анонимных объединениях внутри одного объединения - PullRequest
0 голосов
/ 15 ноября 2018

Законно ли иметь поля с одинаковыми именами в разных анонимных объединениях в одном объединении?

union Foo
{
    union
    {
        int bar;
    };

    union
    {
        int bar;
    };
};

Этот код не компилируется GCC, но отлично работает в MSVC.

1 Ответ

0 голосов
/ 15 ноября 2018

Это не разрешено стандартом C ++.Любой компилятор, который компилирует этот код, не соответствует.

См. 10.4.1 / 1:

Имена членов анонимного объединения должны отличаться от имен любыхдругая сущность в области, в которой объявлен анонимный союз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...