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> >,

Другие вопросы по тегам