I'm trying to specialize a function within a specialization of a class template, but can't figure the right syntax:
template< typename T >
struct Foo {};
template<>
struct Foo< int >
{
template< typename T >
void fn();
};
template<> template<>
void Foo< int >::fn< char >() {} // error: too many template-parameter-lists
Here I'm trying to specialize fn
for char
, which is inside of Foo
specialized for int
. But the compiler doesn't like what I write. What should be the right syntax then?