- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试为 D3DXMATRIXA16
创建一个 vector 像这样:vector<D3DXMATRIXA16> matrices;
并收到错误:
d:\Program Files\Microsoft Visual Studio 9.0\VC\include\vector(717) :
error C2719: '_Val': formal parameter with __declspec(align('16')) won't be aligned
e:\projects\emuntitled\em\emscratch\emshadow.h(60) :
:see reference to class template instantiation 'std::vector<_Ty>' being compiled with [ _Ty=D3DXMATRIXA16 ]
为什么会这样?
感谢您的帮助!
最佳答案
这是一个known issue [link dead] STL::vector 不能正确包含对齐数据,例如 D3DXMATRIXA16。一位海报指出了根本原因(或者至少是其中之一?): vector::resize 的声明按值传递对齐数据,而不是作为 const 引用。该线程中提出了几种解决方法,最安全的方法是完全删除 STL::vector。您可能还想自己修复 STL header 并重新编译 - 这实际上可能比听起来容易,但我自己还没有这样做。
编辑:链接现已断开(感谢@David Menard),这里是an alternative, more elaborate answer .
此问题已在 VS2012RC 中修复 - 这里有一个指向 a corresponding connect issue 的链接[链接死了]。事实证明,这实际上是 C++ 标准本身的一个问题,已于 2008 年修复。
关于c++ - 错误 C2719 : '_Val' : formal parameter with __declspec(align ('16' )) won't be aligned?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1281415/
我遇到编译错误, required from 'std::pair, bool> std::_Rb_tree::_M_insert_unique(_Arg&&) [with _Arg = Soluti
我正在尝试创建一个可以阅读相当简单语法的 Boost::Spirit 语法类。 start = roster; roster = *student; student = int >> strin
需要为 std::pair 对象提供类型为 boost::variant 的对象的值。您将如何使用其他资源来实现这个想法?下面还有其他方法吗? struct aggr_pair_visitor
我是 Boost.Spirit.Lex 的新手。每次我尝试在我的简单词法分析器的语义操作中使用 lex::_val 时,都会出现一些奇怪的错误: #ifndef _TOKENS_H_ #define
我为我的 Boost Spirit Lexer 编写了一个语义操作,用于将字符串中的转义序列转换为它们所代表的含义。它运行完美,我想将它转换为 Boost Phoenix 表达式,但无法编译它。 这是
你好, 如何从 List> tupleList 中获取最小值和最大值? 我知道我可以在 List onlyList 中得到 min 或 min通过 onlyList.Max(); onlyList.M
你好, 如何从 List> tupleList 中获取最小值和最大值? 我知道我可以在 List onlyList 中得到 min 或 min通过 onlyList.Max(); onlyList.M
我正在尝试为 D3DXMATRIXA16 创建一个 vector 像这样:vector matrices;并收到错误: d:\Program Files\Microsoft Visual S
下面的代码,使用 boost::spirit,用于 boost 1.44 和 boost 1.49: qi::string("a_token") [ boost::phoenix::bind(
给定语义 Actor template class divide { public: divide(ValueType value) : divisor{value} {} template
我是一名优秀的程序员,十分优秀!