z;}; и есть struct Triangle {Vec3 A, B, C};
Из бинарного файла я читаю набор float'ов, которые образуют массив треугольников. Считываю в std::vector<float>.
Что вы думаете, если я, потом, просто возьму и, каким-нибудь memcpy всё это скопирую в std::vector<Triangle>? Норм/не норм?
Норм, если вставить следующие проверки: static_assert(sizeof(Vec3) == 3 * float); static_assert(alignog(Vec3) == alignof(float)); static_assert(sizeof(Triangle) == 3 * sizeof(Vec3)); static_assert(alignof(Triangle) == alignog(Vec3)); Если компилятором поддерживается, я бы еще добавил static_assert(std::has_unique_object_representations_v<Vec3>); static_assert(std::has_unique_object_representations_v<Triangle>);
Обсуждают сегодня