This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/37444] New: code rejected in template specialization


The following code fails (worked with gcc 4.1.2)

template<typename T> struct trait {
    static const int level = 0;
};

template<typename T> struct A {
    struct B {
        typedef T datatype;
        datatype *data;
        B *next;
    };
    B* LIST;
};

template<typename T> struct trait< A<T> > {
    static const int level = 1+trait<T>::level;
};

// the definition that causes trouble
template<typename T> struct trait<typename A<T>::B > {
    static const int level = 1+trait< A<T> >::level;
};

with Error message:
error: template parameters not used in partial specialization:
error:          ?T?

This is similar to bug 35989, but simpler, as it does not involve std::vector.


-- 
           Summary: code rejected in template specialization
           Product: gcc
           Version: 4.3.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: wd11 at astro dot le dot ac dot uk
  GCC host triplet: x86_64-suse-linux
GCC target triplet: x86_64-suse-linux


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]