Предполагая, что вы действительно хотите сделать это для нетривиального скаляра (вместо double
), который имеет семантику перемещения, это должно быть безопасно - конечно, если вы не используете A
после этого.Для double
это также безопасно, но это не имеет значения.
В вашем случае может быть лучше сопоставить данные std::vector
с Eigen::Map
, что-то вроде этого:
std::vector<double> A_vec(n*n); // allocate data into A_vec
Eigen::Map<Eigen::MatrixXd> A(A_vec.data(), n, n);
// fill matrix A.
// data is immediately stored into A_vec