Это неопределенное поведение для членов-псевдонимов, использующих объединение? [дубликат]C++

Программы на C++. Форум разработчиков
Anonymous
Это неопределенное поведение для членов-псевдонимов, использующих объединение? [дубликат]

Сообщение Anonymous »

Это неопределенное поведение для таких псевдонимов

Код: Выделить всё

struct Vec3 {
union {int x,r;};
union {int g,y;};
union {int b,z;};
};
Если я это сделаю

Код: Выделить всё

Vec3 v;
v.x = 5;
return v.r; // undefined behavior???
Мне нужна стандартная формулировка, если она не определена. Не хочу слышать, что компиляторы поддерживают его как расширение.
Не предлагайте другие способы исправить это с помощью функции доступа к членам или создания разных типов, ответьте на вопрос.

Подробнее здесь: https://stackoverflow.com/questions/786 ... ng-a-union

Вернуться в «C++»