Eigen :: Vector4dを次のような関数に渡そうとしています:
Matrix3d quat2DCM(Vector4d quat)
{
quat = quat;
return Matrix3d::Identity();
//nevemind the guts of this function, that'l come after this works
}
VC ++ 2005コンパイラは、次のエラーを出します。
エラーC2719:'quat':__declspec(align('16'))を含む正式なパラメーターは整列されません
これは、引数としてのEigen::Vector3dオブジェクトでは発生しません。いくつかのオンラインディスカッションで、Vector4dクラスは、他の既定のtypedefよりも、その配置について特に注意が必要であることに気付きました。クラスでVector4dを使用する場合、それらに引数を渡すための同様の回避策はありますか?EIGEN_MAKE_ALIGNED_OPERATOR_NEW
をオーバーライドするマクロを使用する必要があることがわかりました。new