Eigen库和STL容器冲突问题

博客参考:https://blog.csdn.net/huajun998/article/details/54311561

在程序中想使用类似于如下的容器

std::vector<Eigne::vector4f> centroids;

编译不通过,主要是访问centriods的时候,程序直接访问内存错误。原因是Eigen库使用了SSE加速,需要按照128位对齐,这导致了fixed-size vectorizable Eigen object必须16字对齐,例如Eigen库重载了new操作,然而有些情况这写对齐设置被覆盖了,造成了上述断言错误。

解决方式

#include<Eigen/StdVector>
std::vector<Eigen::vector4f,Eigen::aligned_allocator<Eigen::vector4f> >

按照以上方式申请容器即可解决

猜你喜欢

转载自www.cnblogs.com/flyinggod/p/10716567.html