/*
In the code snippet below the definition of foo fails with the following error
foo.cc:11: error: expected constructor, destructor, or type conversion before
‘A
But the definition of foo2 triggers no error. I think both should be compiled
but it might be a language idiosyncrasy. Thanks.
*/

template <typename T>
class A
{
    public:
        typedef int blah;
        blah foo();
        blah foo2();
};

template <typename T>
A<T>::blah A<T>::foo()
{
    return 0;
}

template <typename T>
A<int>::blah A<T>::foo2()
{
    return 1;
}


-- 
           Summary: Compile error about using typedefs defined in a template
                    class
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: minor
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: peaceout2324 at yahoo dot com
GCC target triplet: i386-redhat-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28540

Reply via email to