클래스 C에 대해 템플릿 메서드를 특수화하고 싶습니다.이 메서드는 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()의 선언문에 너무 많은 템플릿 매개 변수 목록이 있습니다"라는 test() 전문화가 실패합니다.
그건 작동하지 않습니다. 이제 메시지가 나타납니다. 부분 전문화 'test>'이 허용되지 않습니다. –
user231536
아, 그 사실을 잊어 버렸습니다. 클래스 템플릿을 부분적으로 만 특수화 할 수 있습니다. –