如何将const Eigen::VectorXcf转换为Eigen:



我想在特征库中将指向const VectorXcf的指针转换为VectorXcf。我试过const_cast<VectorXcf>,但没有用。以下是错误日志:

error: invalid conversion from 'const Vector2cf* {aka const
Eigen::Matrix<std::complex<float>, 2, 1>*}' to 'Eigen::Vector2cf* {aka
Eigen::Matrix<std::complex<float>, 2, 1>*}' [-fpermissive]

你能确切地展示一下哪些不适合你吗?我在Visual Studio 2015和用-Wall:编译的gcc 6.3.0(mingw(中都有MCVE taht

#include <iostream>
#include <Eigen/Core>
using namespace Eigen;
int main()
{
typedef VectorXcf T;
T mat(10);
const T& matConstRef = mat;
T* nc = const_cast<T*>(&matConstRef);
nc->setConstant(T::Scalar(3.4));
std::cout << *nc << "nn";
Map<T> map = Map<T>(const_cast<T::Scalar*>(matConstRef.data()), matConstRef.rows(), matConstRef.cols());
map << 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;
std::cout << map << "nn";
return 0;
}

它编译时没有任何警告,并给出预期的结果。

最新更新