我想将特征库用于程序,并且具有使用特征固定矩阵大小成员的类层次结构。根据Eigen文档,这使得必须将16个字节对齐类。 Eigen提供了一个宏来做到这一点,但是由于我继承,我不确定所述行为是否只发生在基类中。
即。
class A{
public :
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
// member definitions
};
我是否必须重新指定使用宏?
class B : public A{
public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
// definitions of B
};
或者在B的定义中省略宏是否足够?
答案 0 :(得分:1)
在您的示例中,没有必要使用EIGEN_MAKE_ALIGNED_OPERATOR_NEW
宏,因为operator new
定义的class A
由B
继承。
另一方面,它也没有真正受到伤害,在某些情况下,将宏放入每个本身已经对齐特征成员变量的类中实际上可能更安全。