带有__declspec(align('16'))的XMMATRIX和形式参数不会是aligneD

时间:2015-03-19 16:33:15

标签: c++ visual-studio-2013 directx

我尝试将旧的DirectX代码迁移到Visual Studio 2013中的新代码。

在Scene.cpp中我有函数

void AddInstance(Instance 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_Orientation;,我不明白如何解决这个问题。 我找到了答案说DirectX :: XMFLOAT4X4,但我宁愿不

我猜我可以换掉std :: vector,但我认为这也只是绕过这个问题。

解决我问题的任何答案都会让我的一天<3

1 个答案:

答案 0 :(得分:3)

DirectX::XMMATRIX __declspec(align('16')) won't be aligned

虽然这个问题与这个问题的答案略有不同,但解决方案是相同的 - 通过const引用将Instance传递给AddInstance函数。

void AddInstance(const Instance& aInstance);