C ++ struct alignment

时间:2016-06-12 10:29:43

标签: c++ struct alignment

如果我有一个与{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该怎么办?

0 个答案:

没有答案