C++ 模板作为专业化的模板参数
假设我有一个模板类C++ 模板作为专业化的模板参数,c++,templates,C++,Templates,假设我有一个模板类 template<typename T> class MyClass{ //... } 模板 类MyClass{ //... } 现在我想声明函数: template<typename U, typename M> void foo(U first, M second){ //... } 模板 无效foo(U第一,M第二){ //... } 现在我需要为这个函数编写一个规范,它将MyClass作为第二个模板参数。我试着写这样的东
template<typename T>
class MyClass{
//...
}
模板
类MyClass{
//...
}
现在我想声明函数:
template<typename U, typename M>
void foo(U first, M second){
//...
}
模板
无效foo(U第一,M第二){
//...
}
现在我需要为这个函数编写一个规范,它将MyClass作为第二个模板参数。我试着写这样的东西
template<typename U, typename M>
void foo(U first, template<typename T> MyClass<T> second){
//...
}
模板
void foo(U优先,模板MyClass第二){
//...
}
不幸的是,它不起作用。你有什么建议怎么做吗?尽可能简单
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){
}
模板
类MyClass{
// ...
};
模板
无效foo(U第一,M第二){
}
模板
void foo(U第一,MyClass第二){
}
我已经定义了模板类MyClass{//…};模板void foo(U-first,M-second){}模板void foo(U-first,MyClass-second){}但是对于像foo(obj1,obj2)这样的调用,它调用一个非专用函数,其中obj1和obj2是MyClass@Matimath这是因为您提供了显式模板参数,不允许选择更专门的函数。只需执行foo(obj1,obj2)
或foo(obj1,obj2)
。