それ自体がintパラメーターによってテンプレート化されているクラスCのテンプレートメソッドを特殊化したいと思います。
どうすればよいですか?
template <int D=1>
class C {
static std::string foo () { stringstream ss; ss << D << endl; return ss.str();}
};
template <class X>
void test() { cout << "This is a test" << endl;}
template <>
template <int D>
void test<C<D> > () {cout << C<D>::foo() << endl;}
test()の特殊化は、「void test()の宣言に含まれるテンプレートパラメータリストが多すぎます」で失敗します。