Возникла какая-то действительно странная проблема, и как новичок в С++ я не знаю, почему.
struct DeviceSettings
{
public:
....somevariables
DXSize BackbufferSize;
....somemethods
};
struct DXPoint;
typedef DXPoint DXSize;
__declspec(align(16)) struct DXPoint
{
public:
union
{
struct
{
int x;
int y;
};
struct
{
int width;
int height;
};
int dataint[2];
__m128i m;
};
DXPoint(void);
DXPoint(int x, int y);
~DXPoint(void);
void operator = (const DXPoint& v);
};
По какой-то причине, когда я объявляю DeviceSettings, сбой приложения приводит к неправильному выравниванию переменной DXSize.
Но это только при компиляции в 32-битном режиме. В 64-битном режиме работает нормально...
Любые подсказки? Я упускаю что-то очевидное?