Gunter,
Now I am really confused. I tried compiling the code below in the command line in VC++ 2008 Express and VC++ 2010 Express and it goes fine. Inside a project in VC++ 2008 Express it also goes fine. But inside a project in VC++2010 Express it results in that error whenever I use the += operator.
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/vector_of_vector.hpp>
namespace ublas = boost::numeric::ublas;
int main(int argc, char** argv)
{
ublas::generalized_vector_of_vector<float, ublas::row_major, ublas::vector<ublas::vector<float> > > K(3, 3);
K(0,0) += 1.f;
return 0;
}
I get:
e:\boost\boost_1_42_0\boost\numeric\ublas\vector_of_vector.hpp(301): error C2668: 'boost::numeric::ublas::ref' : ambiguous call to overloaded function
1> e:\boost\boost_1_42_0\boost\numeric\ublas\vector_sparse.hpp(174): could be 'boost::numeric::ublas::vector<T> &boost::numeric::ublas::ref<boost::numeric::ublas::vector<T>>(VER &)'
1> with
1> [
1> T=float,
1> VER=boost::numeric::ublas::vector<float>
1> ]
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\xrefwrap(439): or 'std::tr1::reference_wrapper<_Ty> std::tr1::ref<T>(_Ty &)' [found using argument-dependent lookup]
1> with
1> [
1> _Ty=boost::numeric::ublas::vector<float>,
1> T=boost::numeric::ublas::vector<float>
1> ]
1> while trying to match the argument list '(boost::numeric::ublas::vector<T>)'
1> with
1> [
1> T=float
1> ]
1> e:\boost\boost_1_42_0\boost\numeric\ublas\vector_of_vector.hpp(298) : while compiling class template member function 'float &boost::numeric::ublas::generalized_vector_of_vector<T,L,A>::insert_element(unsigned int,unsigned int,const float &)'
1> with
1> [
1> T=float,
1> L=boost::numeric::ublas::row_major,
1> A=boost::numeric::ublas::vector<boost::numeric::ublas::vector<float>>
1> ]
Seems to be a problem with VC++ 2010 Express then?? . . . This program is already driving me angry anyway.
x