Я пытаюсь передать 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 особенно требователен к своему выравниванию, больше, чем к другим стандартным определениям типов. При использовании Vector4d в классе я счел необходимым использовать макрос EIGEN_MAKE_ALIGNED_OPERATOR_NEW
, который переопределяет new
Существует ли аналогичный обходной путь для передачи им аргументов?