Можете ли вы показать, что именно не работает для вас?У меня есть MCVE, который работает как в Visual Studio 2015, так и gcc 6.3.0 (mingw), скомпилированный с -Wall
:
#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 << "\n\n";
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 << "\n\n";
return 0;
}
. Он компилируется без каких-либо предупреждений и дает ожидаемый результат.