eigen3:将Map的新语法放置到const值

时间:2015-02-17 17:51:42

标签: new-operator eigen3

大家好:我对Eigen3和新的放置语法有点困惑,因为这段代码可以工作:

double ptr1[9]={1,2,3,4,5,6,7,8,9};
const double ptr2[9]={1,2,3,4,5,6,7,8,9};
Map<Matrix<double,3,3> >    mUseless(ptr1);
new (&mUseless) Map<const Matrix<double,3,3> > (ptr2);
mUseless(1,1)=6.0;

如果mUseless现在指向const double,为什么这段代码有效?

1 个答案:

答案 0 :(得分:0)

调用展示位置新内容不会更改对象的类型,并且由于mUseless不是Map<const ...>,因此您可以更改引用值的内容是完全正常的。

实际上,您的代码类似于从reinterpret_castMap<const Matrix<double,3,3> >的{​​{1}}。