C++ XMMATRIX和形式参数,带有uu declspec(align(';16';))赢得';不一致
我已尝试在Visual Studio 2013中将旧的DirectX代码移植到新的DirectX代码中 在Scene.cpp中,我具有以下功能C++ XMMATRIX和形式参数,带有uu declspec(align(';16';))赢得';不一致,c++,visual-studio-2013,directx,C++,Visual Studio 2013,Directx,我已尝试在Visual Studio 2013中将旧的DirectX代码移植到新的DirectX代码中 在Scene.cpp中,我具有以下功能 void AddInstance(实例aInstance) 这只是一个推回: m_vecInstances.push_back(aInstance); 这会给出一个错误,即: Error 1 error C2719: 'aInstance': formal parameter with __declspec(align('16')) won't
void AddInstance(实例aInstance)代码>
这只是一个推回:
m_vecInstances.push_back(aInstance);
这会给出一个错误,即:
Error 1 error C2719: 'aInstance': formal parameter with __declspec(align('16')) won't be aligned
原因是Instance.h成员具有DirectX::XMMATRIX m_方向代码>我不知道如何解决这个问题。
我发现答案是DirectX::XMFLOAT4X4,但我不这么认为
我猜我可以换掉std::vector,但我认为这也只是绕着问题走
任何能解决我问题的答案都会让我开心
虽然与此问题的答案略有不同,但解决方案是相同的-通过常量引用将实例
传递到AddInstance函数中
void AddInstance(const Instance& aInstance);
什么是类型实例
?现在的实例只是:类实例{public:Instance();~Instance();void Update();void Render();private:DirectX::XMMATRIX m_Orientation;}代码>它确实解决了错误消息,但是我“有时”会遇到访问冲突,我想这是因为我使用的是std::vector:(我认为这会导致MMX/SSE指令上的潜在对齐异常,而不是访问冲突。无论如何,如果这回答了问题,请接受它;),再问一个关于坠机的问题。