我正在尝试创建一个向量D3DXMATRIXA16
像这样:vector<D3DXMATRIXA16> matrices;
并收到错误:
d:\Program Files\Microsoft Visual Studio 9.0\VC\include\vector(717) :
错误 C2719:'_Val':形式参数
与 __declspec(align('16')) 不会
对齐
e:\projects\emuntitled\em\emscratch\emshadow.h(60) :
:参见类模板参考
实例化 'std::vector<_ty>' 是
编译的
和
[
_Ty=D3DXMATRIXA16
]
到底是为什么呢?
谢谢你的帮助!
It is a 已知问题[链接失效] stl::vector 无法正确包含对齐数据,例如 D3DXMATRIXA16。一张海报指出了根本原因(或者至少是其中之一?):vector::resize 的声明按值传递对齐数据,而不是作为 const 引用。
该线程中建议了几种解决方法,最安全的是完全删除 stl::vector。您可能还想自己修复 stl 标头并重新编译 - 这实际上可能比听起来更容易,但我自己还没有这样做。
编辑:链接现在已损坏(感谢@David Menard),这是一个替代的、更详细的答案.
该问题已在 VS2012RC 中修复 - 这里有一个链接相应的连接问题[链接失效]。事实证明,这实际上是 C++ 标准本身的一个问题,已于 2008 年修复。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)