[C++] member template partial specialization ICE

Benjamin Kosnik bkoz@cygnus.com
Tue May 23 12:13:00 GMT 2000


Recent (since 2.95.2) regression. This used to error out. Now it just dies.

-benjamin



template<typename T1>
class test 
{
 public:
  template<typename T2>
    void foo(T2 val);
};


// Specialized method

// declare member template partial specialization
template<> template<typename T2>
void test<unsigned char>::foo(T2 val);

// define member template partial specialization
template<> template<typename T2>
void test<unsigned char>::foo(T2 val) { }

// 14.7.3 explicit specialization p 16
// member template explicit specialization (T2 deduced as int)
template<> template<>
void test<unsigned char>::foo(int val) { } 

// member template explicit specialization (T2 specified as short)
template<> template<>
void test<unsigned char>::foo<short>(short val) { } 


More information about the Gcc-bugs mailing list