Я тестировал типы данных библиотеки Eigen с объединением для определения типов.Мое намерение состоит в том, чтобы иметь одну память двойного массива, к которой можно обращаться как к собственному типу данных, и наоборот.
пример:
union BigBox{
double X[13];
struct
{
Eigen::Vector3d p;
Eigen::Vector3d v;
Eigen::Vector3d w;
Eigen::Vector4d q;
} data;
};
Когда я проверяю
sizeof(BigBox)/sizeof(double) = 14
sizeof(Eigen::Vector3d)/sizeof(double) = 3
sizeof(Eigen::Vector4d)/sizeof(double) = 4
Размер структуры не складывается.Как получить дополнительный +1?Я полагаю, что это может быть из-за того, что компилятор пытается использовать функции SMID, но есть ли какой-нибудь способ для меня, чтобы в этих ситуациях использовать наказание типов?Как правильно подходить к тому, чего я пытаюсь достичь?