Stranger Than Usual

Hilfreiche Fehlermeldungen

Compiler-Fehler haben ja häufig die Eigenschaft, etwas kryptisch zu sein. Genau das, gepaart mit einem Haufen namespaces, um es auch noch unleserlich zu machen, wurde mir am Dienstag ausgespuckt:

experiment.cpp:24:45: error: no match for ‘operator=’ in ‘result = boost::numeric::ublas::operator+(const boost::numeric::ublas::matrix\_expression<E>&, const boost::numeric::ublas::matrix\_expression<E2>&) [with E1 = boost::numeric::ublas::zero\_matrix<double>, E2 = boost::numeric::ublas::matrix\_matrix\_binary<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::matrix\_unary2<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::scalar\_identity<double> >, boost::numeric::ublas::matrix\_matrix\_prod<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::matrix\_unary2<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::scalar\_identity<double> >, double> >, typename boost::numeric::ublas::matrix\_binary\_traits<E1, E2, boost::numeric::ublas::scalar\_plus<typename E1::value\_type, typename E2::value\_type> >::result\_type = boost::numeric::ublas::matrix\_binary<boost::numeric::ublas::zero\_matrix<double>, boost::numeric::ublas::matrix\_matrix\_binary<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::matrix\_unary2<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::scalar\_identity<double> >, boost::numeric::ublas::matrix\_matrix\_prod<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::matrix\_unary2<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::scalar\_identity<double> >, double> >, boost::numeric::ublas::scalar\_plus<double, double> >](((const boost::numeric::ublas::matrix\_expression<boost::numeric::ublas::matrix\_matrix\_binary<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::matrix\_unary2<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::scalar\_identity<double> >, boost::numeric::ublas::matrix\_matrix\_prod<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::matrix\_unary2<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::scalar\_identity<double> >, double> > >&)((const boost::numeric::ublas::matrix\_expression<boost::numeric::ublas::matrix\_matrix\_binary<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::matrix\_unary2<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::scalar\_identity<double> >, boost::numeric::ublas::matrix\_matrix\_prod<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::matrix\_unary2<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::scalar\_identity<double> >, double> > >*)(& boost::numeric::ublas::prod(const boost::numeric::ublas::matrix\_expression<E>&, const boost::numeric::ublas::matrix\_expression<E2>&) [with E1 = boost::numeric::ublas::matrix<double>, E2 = boost::numeric::ublas::matrix\_unary2<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::scalar\_identity<double> >, typename boost::numeric::ublas::matrix\_matrix\_binary\_traits<typename E1::value\_type, E1, typename E2::value\_type, E2>::result\_type = boost::numeric::ublas::matrix\_matrix\_binary<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::matrix\_unary2<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::scalar\_identity<double> >, boost::numeric::ublas::matrix\_matrix\_prod<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::matrix\_unary2<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::scalar\_identity<double> >, double> >](((const boost::numeric::ublas::matrix\_expression<boost::numeric::ublas::matrix\_unary2<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::scalar\_identity<double> > >&)((const boost::numeric::ublas::matrix\_expression<boost::numeric::ublas::matrix\_unary2<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::scalar\_identity<double> > >*)(& boost::numeric::ublas::trans(boost::numeric::ublas::matrix\_expression<E>&) [with E = boost::numeric::ublas::matrix<double>, typename boost::numeric::ublas::matrix\_unary2\_traits<E, boost::numeric::ublas::scalar\_identity<typename E::value\_type> >::result\_type = boost::numeric::ublas::matrix\_unary2<boost::numeric::ublas::matrix<double>, boost::numeric::ublas::scalar\_identity<double> >]()))))))))’