如果我有一个与{16}字节对齐的类Vector
。另一个包含Vector
的结构是否安全?
struct alignas(16) Vector {
//...
//overloaded operators that ensure alignment
void* operator new(size_t size){ return _aligned_malloc(size, 16); }
void operator delete(void* ptr) { if (ptr) _aligned_free(ptr); }
void* operator new[](size_t size) { return _aligned_malloc(size, 16); }
void operator delete[](void* ptr) { if (ptr) _aligned_free(ptr); }
};
struct someStruct {
Vector vector;
//some other data
};
Vector
中的someStruct
是否正确对齐?如果我使用someStruct
运算符创建new
该怎么办?