3
我想專門爲類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()的特化失敗,「void test()聲明中的模板參數列表太多」。
這是行不通的。現在我收到一條消息: 部分專業化'test>'不允許 –
user231536
2010-06-18 15:32:21
哦,是的,我已經忘記了這一點。你只能部分專門化類模板。 – 2010-06-18 15:38:58