1
假设一个类被声明为具有特定对齐。而且我不能修改那个基类。如何使内存对齐类的派生类失去对齐
#define ATTRIBUTE_ALIGNED16(a) __declspec(align(16)) a
ATTRIBUTE_ALIGNED16(class) btVector3
{};
class Vector3 : public btVector3
{};
是否有可能使派生类Vector3失去对齐?
在MSVC对齐方式下相当有限,因为它阻止了按值传递。我的派生类并不特别需要它,并且在模板编写中,可以方便地使用可以通过值传递的类。
不能删除该声明吗? – Eric
不,它来自外部库。为了方便起见,我使用Vector3,并且不重新发明轮子,但我不需要特定的对齐方式。 – N0vember
当时还不确定,但是如果对齐方式没有保持,类的内部机制可能不起作用 – Eric