Использование XMVECTOR из DirectXMath в качестве члена класса вызывает сбой только в режиме выпуска?
я пытался использовать XMVECTOR в качестве члена класса для ограничивающего прямоугольника, так как я делаю много вычислений, но я использую XMFLOAT3 только один раз на кадр, поэтому ограничивающий прямоугольник имеет метод, который дает мне этоцентр в XMFLOAT3, в противном случае он остается в XMVECTOR; класс обнуляется с __declspec (align (16)) и работает в режиме отладки.
Box& Box::operator=(const Box& box)
{
_center = box._center;
_extents = box._extents;
return *this;
}
Всякий раз, когда я делаю:
Box A;
Box B;
A = B;
Это дает сбой, давая мне 0xC0000005: Место чтения нарушения доступа 0x00000000. Также он падает, когда я создаю его как указатель:
Box* A = new Box();
Это конструктор:
Box::Box()
{
center = XMVectorZero();
extents = XMVectorSplatOne();
}
Опять же, это прекрасно работает в режиме отладки, но в выпуске происходит сбой. Что может изменить режим выпуска, что приведет к созданию недействительного кода? Нужно ли делать что-то еще, кроме выравнивания блока в 16 байтов?