Boost logo

Boost Users :

Subject: Re: [Boost-users] Template method applied to template object
From: Adrien Chauve (adrien.chauve_at_[hidden])
Date: 2009-03-03 13:34:47


Thanks a lot for both answers !

On Tue, Mar 3, 2009 at 19:09, Othman, Ossama <ossama.othman_at_[hidden]>wrote:

> Hi,
>
> > The following lines don't compile with g++ (4.3.2) whereas it's ok with
> > msvc 9.
> >
> > struct Foo
> > {
> > template<class T>
> > unsigned int foo() const
> > {
> > return sizeof(T);
> > }
> >
> > };
> >
> > struct OtherFoo
> > {
> > template<class T>
> > void f(const T& t)
> > {
> > t.foo<double>();
> > }
> >
> > };
> [snip]
> > The ouput is :
> > test.cpp: In member function 'void OtherFoo::f(const T&)':
> > test.cpp:17: erreur: expected primary-expression before 'double'
> > test.cpp:17: erreur: expected `;' before 'double'
> >
> > Does anybody know a workaround ?
>
> The following works for me:
>
> --- foo.cpp.old 2009-03-03 10:01:21.086297500 -0800
> +++ foo.cpp 2009-03-03 10:00:26.471330500 -0800
> @@ -14,7 +14,7 @@
> template<class T>
> void f(const T& t)
> {
> - t.foo<double>();
> + t.template foo<double>();
> }
>
> };
>
> HTH,
> -Ossama
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net