9
当我想定义像这样的模板类中的一些模板成员方法:“太多的模板参数列表”错误专门的成员函数
template <typename T>
class CallSometing {
public:
void call (T tObj); // 1st
template <typename A>
void call (T tObj, A aObj); // 2nd
template <typename A>
template <typename B>
void call (T tObj, A aObj, B bObj); // 3rd
};
template <typename T> void
CallSometing<T>::call (T tObj) {
std::cout << tObj << ", " << std::endl;
}
template <typename T>
template <typename A> void
CallSometing<T>::call (T tObj, A aObj) {
std::cout << tObj << ", " << aObj << std::endl;
}
template <typename T>
template <typename A>
template <typename B> void
CallSometing<T>::call (T tObj, A aObj, B bObj) {
std::cout << tObj << ", " << aObj << ", " << bObj << ", " << std::endl;
}
但instantializing模板类时,有关于三参数menthod定义的一个错误:
CallSometing<int> caller;
caller.call(12); // OK
caller.call(12, 13.0); // OK
caller.call (12, 13.0, std::string("lalala!")); // NOK - complains "error: too many template-parameter-lists"
请问我在做什么错了?为什么(2nd)方法可以,但(3rd)会导致编译时错误?
Aghhhhh +1加快四秒。 :-D – 2010-08-29 17:50:08
@詹姆斯:他不是四秒钟后,他提前三秒钟。 ':)' – sbi 2010-08-29 22:44:30