------- Comment #2 from reichelt at gcc dot gnu dot org 2006-05-12 14:53 ------- Here's a shorter testcase:
========================================================================== template<template<typename> class> struct A; template<int> struct B { template<typename T> void foo(T); }; template<> template<template<typename> class T> void B<0>::foo(A<T>) {} ========================================================================== If I turn the template-template parameters into regular template parameters the code is (IMHO wrongly) accepted: ========================================================================== template<typename> struct A; template<int> struct B { template<typename T> void foo(T); }; template<> template<typename T> void B<0>::foo(A<T>) {} ========================================================================== -- reichelt at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |reichelt at gcc dot gnu dot | |org Keywords| |accepts-invalid, ice-on- | |invalid-code, monitored http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27568