给予:
void foo(const matrix<double>& lol)
{
matrix_row<matrix<double> > lolwut(lol, 5);
}
错误:
no matching function for call to ‘boost::numeric::ublas::matrix_row<boost::numeric::ublas::matrix<double> >::matrix_row(const boost::numeric::ublas::matrix<double>&, size_t&)’
如何unconst
函数参数中给出的引用或使用哪种变通方法?我不确定是否简单的任务
matrix<double> tmp = lol;
不会有任何开销。
答案 0 :(得分:2)
以下是使用BOOST_AUTO
:
void foo(const matrix<double>& lol)
{
matrix_row< const matrix<double> > lolwut(lol, 5);
}
如果要编译为C ++,则需要空格。 11否则一些错误编译器会将其解释为正确的位移(>>
)运算符
答案 1 :(得分:1)
尝试使用BOOST_AUTO
。
<强>代码:强>
BOOST_AUTO(r, row(lol, 5));