2017-03-03 73 views
2

我想为程序使用Eigen库并拥有使用Eigen固定矩阵大小成员的类层次结构。根据Eigen文档,这使得需要16个字节对齐类。 Eigen提供了一个宏来做到这一点,但是由于我是继承的,我不确定所述行为是否仅在基类中出现。是否有必要召回在C++中继承类的公共部分的宏

I.e.

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

相关:https://stackoverflow.com/questions/49075375/ – chtz

回答

0

在你的例子中,没有必要使用EIGEN_MAKE_ALIGNED_OPERATOR_NEW宏,因为由class A定义的operator newB继承。

另一方面,它也没有受到任何伤害,在某些情况下,将宏放入每个本身已对齐Eigen成员变量的类中可能更安全。

相关问题