[Bug c++/13616] New: fails to look up template specialization of template template parameter involving own template parameters

hetadres at email dot com gcc-bugzilla@gcc.gnu.org
Thu Jan 8 16:31:00 GMT 2004


gcc fails to look up a template specialization of a template template parameter 
with a template class, instanciated with one of its own template parameters.

Following code compiles fine, but produces "general" as output, where 
"specialization" would be expected. I did not include a preprocessed version of 
the code, because <iostream> is only used to show wich version of class C is 
instanciated.

Compiled on:
Gentoo Linux 1.4
gcc version 3.2.3 20030422

code:

#include <iostream>

template <
	class T,
	class P
> class PPImpl { };

template<class P> struct PP {
	template<class T> class Type : PPImpl<T, P> { };
};



template <
	class P, 
	template <class> class Q
> class C {
public:
	C() { std::cout << "general\n"; }
};

template <
	class P
> class C <P, PP<P>::Type > {
public:
	C() { std::cout << "specialization\n"; }
};



int main() {
	C<double, PP<double>::Type>c;
}

-- 
           Summary: fails to look up template specialization of template
                    template parameter involving own template parameters
           Product: gcc
           Version: 3.2.3
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: hetadres at email dot com
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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



More information about the Gcc-bugs mailing list