1
假設一個類被聲明爲具有特定對齊。而且我不能修改那個基類。如何使內存對齊類的派生類失去對齊
#define ATTRIBUTE_ALIGNED16(a) __declspec(align(16)) a
ATTRIBUTE_ALIGNED16(class) btVector3
{};
class Vector3 : public btVector3
{};
是否有可能使派生類Vector3失去對齊?
在MSVC對齊方式下相當有限,因爲它阻止了按值傳遞。我的派生類並不特別需要它,並且在模板編寫中,可以方便地使用可以通過值傳遞的類。
不能刪除該聲明嗎? – Eric
不,它來自外部庫。爲了方便起見,我使用Vector3,並且不重新發明輪子,但我不需要特定的對齊方式。 – N0vember
當時還不確定,但是如果對齊方式沒有保持,類的內部機制可能不起作用 – Eric