Re: [eigen] Visual C++ 2005 - error c2783 can't deduce template argument for type T

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Oooh I see... you're talking about Eigen 1 !!

Just FYI Eigen 2 is in beta right now, and for a long time now all effort has 
been focused on it. Eigen 2 supports Visual C++. I don't remember exactly 
what was the status of Eigen 1 support with Visual C++, so this issue might 
not be the only one. 

Maybe you might want to switch to Eigen 2 anyway? It has many advantages over 
Eigen 1, including full Visual C++ support, although I don't know how well 
Visual C++ performs (the quality of the C++ compiler matters a lot for Eigen 
2).

Cheers,
Benoit

On Friday 31 October 2008 17:45:22 Mark B wrote:
> Vector3d test;
> test.isZero();
>
> That should reproduce the problem in Visual C++ 2005 Express Edition.
> Here is the error:
>
> 1>h:\collision\eigen\vectorbase.h(579) : error C2783: 'T
> Eigen::Util::epsilon(void)' : could not deduce template argument for
> 'T'
> 1>        h:\collision\eigen\util.h(79) : see declaration of
> 'Eigen::Util::epsilon'
> 1>        h:\collision\eigen\vectorbase.h(609) : while compiling class
> template member function 'bool
> Eigen::VectorBase<T,Derived>::isZero(const T &) const'
> 1>        with
> 1>        [
> 1>            T=double,
> 1>            Derived=Eigen::Vector<double,3>
> 1>        ]
> 1>        h:\collision\eigen\vector.h(99) : see reference to class
> template instantiation 'Eigen::VectorBase<T,Derived>' being compiled
> 1>        with
> 1>        [
> 1>            T=double,
> 1>            Derived=Eigen::Vector<double,3>
> 1>        ]
> 1>        h:\collision\collmodel.h(9) : see reference to class
> template instantiation 'Eigen::Vector<T,Size>' being compiled
> 1>        with
> 1>        [
> 1>            T=double,
> 1>            Size=3
> 1>        ]
>
> On Fri, Oct 31, 2008 at 4:38 AM, Benoît Jacob <jacob@xxxxxxxxxxxxxxx> wrote:
> > Hi,
> >
> > Could you paste the exact source code causing this error and compiler
> > output?
> >
> > By the way, Vector3d is a typedef for Matrix<double, 3, 1>. There is no
> > separate Vector class template, vectors are a special case of matrices.
> >
> > Cheers,
> > Benoit
> >
> > On Friday 31 October 2008 07:25:39 Mark B wrote:
> >> Hi. When trying to call some_vector.isZero() (when the type of
> >> some_vector is Vector3d, which I would imagine is Vector<double, 3>) I
> >> get the error c2783 can't deduce template argument for type T. Any
> >> idea why? Should be an easy thing to deduce (the error output even
> >> says for class 'vector<double, 3>' so obviously it knows the type
> >> should be double :P) Thanks,
> >>
> >> Mark
> >>
> >> ---
>
> ---



---


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/