boost, matrix_proxy, const matrix
Давать это:
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;
не будет никаких накладных расходов.
2 ответа
Решение
Вот как вы это делаете, используя BOOST_AUTO
:
void foo(const matrix<double>& lol)
{
matrix_row< const matrix<double> > lolwut(lol, 5);
}
Пробелы нужны, если вы компилируете в C++ < 11, иначе некоторые глючные компиляторы интерпретируют его как правильный сдвиг битов (>>
) оператор
Попробуйте использовать BOOST_AUTO
,
Код:
BOOST_AUTO(r, row(lol, 5));