нет?
float& fvec4::operator[](int index)
{
assert(index <= 3);
union {
__m128 v;
float a[4];
} u;
u.v = this->xmm;
return u.a[index];
}
Да, будет
Почему?
Потому что идёт обращение к u.a – неактивному члену union, лайфтайм которого начат не был
То-есть он должен быть сначала присвоен, чтобы его не было?
Да, вы можете читать только те члены union, которым присваивали в последний раз значение
Обсуждают сегодня