模板作为专业化的模板参数

时间:2016-11-29 19:13:30

标签: c++ templates

假设我有一个模板类

template<typename T>
class MyClass{
    //...
}

现在我要声明函数:

template<typename U, typename M>
void foo(U first, M second){
    //...
}

现在我需要编写一个这个函数的specjalization,它将MyClass作为第二个模板参数。我试着写这样的东西

template<typename U, typename M>
void foo(U first, template<typename T> MyClass<T> second){
    //...
}

不幸的是它不起作用。你有任何吸烟怎么办?

1 个答案:

答案 0 :(得分:3)

就像

一样简单
template<typename T>
class MyClass{
 // ...
};

template<typename U, typename M>
void foo(U first, M second){
}

template<typename U, typename M>
void foo(U first,  MyClass<M> second){

}