Hi all,

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>();
    }

};

int main()
{
    Foo foo;
    OtherFoo other;
    other.f<Foo>(foo);

    return 0;
}

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 ?


Thanks,
Adrien