我一直收到错误error: no matching function for call to 'alglib::integer_1d_array::setcontent(int, Eigen::PlainObjectBase<Eigen::Matrix<int, 3, 1> >::Scalar*)'
。
出于某些原因,alglib::integer_1d_array
不喜欢以与alglib::real_1d_array
相同的方式实例化。
例如,在具有模板实参size_t num
和参数Eigen::Matrix<double,num,num> A
的函数模板中,这是有效的:
Eigen::Matrix<double,num,num,Eigen::RowMajor> twice_A_rm(A);
real_2d_array a;
a.setcontent(num, num, twice_A_rm.data());
但是,一旦我切换到整数数组,它就不起作用了:
Eigen::Matrix<int,num+1,1> ctEig = Eigen::Matrix<int,num+1,1>::Constant(1.0); // positive for >=
integer_1d_array ct;
ct.setlength(num+1);
ct.setcontent(num+1, ctEig.data());
我也可以在最后一行用static_cast<int>(num+1)
替换num+1
,但它仍然不起作用。我做错了什么?
https://stackoverflow.com/questions/50777483
复制相似问题