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 に答える