我想要一个基类来指示从它继承的对象的对齐方式。这适用于堆,因为我可以控制如何分配它,以及如何在自定义数组模板中分配它的数组。然而,就 C++ 而言,类的实际大小根本没有改变。也就是说,如果我对派生类的指针执行指针运算,那么它将跳到错误的位置。那是问题一。
问题二是堆栈对齐。似乎没有办法直接强制整个堆栈为 16 字节对齐的指针。
我唯一能看到影响这些的是 vc++ 和 g++ 编译器特定设置,但这里的问题是我不想一直手动修复对齐。那肯定容易出错,更不用说痛苦了。
我也可以制作某种智能指针,但这也会引入更多问题。
如果我只是对齐基类,子类也会对齐吗?如果是这样,那将解决我的大部分问题,但情况似乎令人怀疑(尽管我会尝试这个)。