0

给出这个:

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;

不会有任何开销。

4

2 回答 2

2

以下是您如何使用BOOST_AUTO

void foo(const matrix<double>& lol)
{
    matrix_row< const matrix<double> > lolwut(lol, 5);
}

如果要编译为 C++ < 11,则需要空格,否则一些有问题的编译器会将其解释为正确的位移 ( >>) 运算符

于 2012-08-23T14:21:09.303 回答
1

尝试使用BOOST_AUTO.

代码:

BOOST_AUTO(r, row(lol, 5));
于 2012-03-19T11:23:53.420 回答