Я хочу знать, указано ли в стандарте (обратите внимание, а не в компиляторах), является ли это значение неопределенным
Код: Выделить всё
struct Vec2{int x,y;};
union {
Vec2 v;
int x;
} u = {{0,0}}; // v is set
u.v.x; // this is defined
u.x; // is this undefined? I am accessing the same type but is it?
Примечание. Я знаю, что компиляторы gcc, clang, msvc рассматривают это как расширение, не являющееся UB, и я знаю, что могу использовать std::memcpy для каламбура типов.
Примечание. п>
Подробнее здесь:
https://stackoverflow.com/questions/786 ... -undefined