Это была проблема в GCC, которая была исправлена в версии 4.6.Теперь ваш код работает нормально.
Он по-прежнему зависит от расширения GCC, поскольку использует анонимную структуру, но большинство компиляторов поддерживают их сейчас.Кроме того, следующий код теперь собирается правильно с -pedantic
:
struct Bar {
union {
const int x;
const int y;
};
Bar() : x(1) {}
};
Этот код также принимается Clang и Visual Studio 2010 (но не работает с 2008).