我正在使用一个使用 Eigen 库的项目。我已经解决了一个问题,即在 STL 中使用 eigen 提供的数据类型时,出现对齐错误
错误 C2719: '_Val': 带有 __declspec(align('16')) 的形式参数不会对齐
看
- http://eigen.tuxfamily.org/dox/TopicStlContainers.html或 - http://www.mrpt.org/Matrices_vectors_arrays_and_Linear_Algebra_MRPT_and_Eigen_classes)
一旦解决了这个问题,我就可以编译和运行了。
但是现在在运行时我遇到了另一个错误
调试错误!
R6010
abort() 已被调用。
所以有问题的代码引用了我的结构和我的结构的向量(带有特别对齐的特征):
typedef struct {
Vector4f v4;
Matrix4f M4;
bool b;
} my_struct;
typedef std::vector<my_struct, Eigen::aligned_allocator<my_struct>> my_struct;
然后我的代码在经过一定次数的迭代后尝试创建新的 my_struct 后失败(它有时可以创建新对象,没有问题),其他时候失败。
for (int i = 0; i<len; i++) {
Vector4f vec;
Matrix4f mat;
my_struct* temp = new my_struct();
}
有任何想法吗?汤姆