我有一个关于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