2
模板参数
比方说,我有一个模板类模板作为专业化
template<typename T>
class MyClass{
//...
}
现在我要声明功能:
template<typename U, typename M>
void foo(U first, M second){
//...
}
现在我需要写这个函数,它接受的MyClass一个specjalization作为第二个模板参数。我试图写这样的东西
template<typename U, typename M>
void foo(U first, template<typename T> MyClass<T> second){
//...
}
不幸的是,它不起作用。你有什么sugestions如何做到这一点?
我已经定义 模板 MyClass类{ // ... }; 模板 无效美孚(U第一,M个第二){ } 模板 无效美孚(U第一,MyClass的第二){ } 但是对于像foo > MyClass >(obj1,obj2)这样的调用,它调用一个非专用函数,其中obj1和obj2是MyClass的对象 –
Matimath
@Matimath这是因为您提供了显式模板参数,它们不允许选择更专功能。做'foo(obj1,obj2)'或'foo,int>(obj1,obj2)'。 –
aschepler