eigen3: размещение нового синтаксиса для Map для константного значения
Привет всем: я немного запутался с 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 ответ
Решение
Вызов размещения нового не меняет тип объекта, и, так как mUseless
это не Map<const ...>
, это совершенно нормально, что вы можете изменить содержимое ссылочных значений.
На самом деле, ваш код похож на reinterpret_cast
из Map<const Matrix<double,3,3> >
к Map<Matrix<double,3,3> >
,