Объединение с константным и неконстантным членами?

Похоже, это поведение undefined

union A {
  int const x;
  float y;
};

A a = { 0 };
a.y = 1;

В спецификации сказано

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

Но ни один компилятор не предупредит меня, хотя это легко диагностировать ошибку. Неправильно ли я истолковываю формулировку?

21
задан timrau 25 September 2012 в 23:29
поделиться