我有一個關於C++模板專業化的問題,我希望這裏有人能提供幫助。我有一個有3個模板參數類:專門研究C++模板中的子類型
template<class A, class B, class C>
class myClass {
public:
void myFunc();
};
我想要做的就是寫myFunc的幾個版本,專門的,比方說,C型,但對於通用類型A和B,所以我不要完全模板函數是這樣的:
template<class A, class B, class C>
void myClass<A, B, C>::myFunc()
{
// function code here
}
,我不希望這樣的
void myClass<int, int, int>::myFunc()
{
// code goes here
}
完全專業化的功能相反,我想要做的事,這將是類似於
template<class A, class B>
void myClass<A, B, int>::myFunc()
{
// code goes here
}
的想法是,如果類C型爲int,我會打電話myFunc的(一版),如果類C類是雙重的,我會打電話的不同版本在myfunc。我已經嘗試了很多不同的模板專業化語法的組合(這裏列出了太多),而且似乎沒有編譯。
有人可能在這裏指出我在正確的方向嗎?在此先感謝您的幫助。
邁克爾
感謝您的回答。我想我明白髮生了什麼,我即將嘗試。 – Michael 2011-06-05 00:43:53