【发布时间】:2015-08-13 21:21:45
【问题描述】:
考虑以下代码:
class MyClass
{
...
};
template <typename Object>
class List
{
public:
void insert(const Object & x)
{
// call when Object is MyClass
}
void insert(const Object & x)
{
// call when Object is MyClass*
}
}
int main()
{
MyClass a;
List<MyClass> lst;
List<MyClass*> plst;
lst.insert(a);
plst.insert(new Myclass);
return 0;
}
如何根据模板是类还是指针来告诉编译器调用不同的方法?
如何修复上面的代码?
【问题讨论】:
-
请发MCVE。
-
更好的方法是重写你的代码,让它不关心它是在处理一个类还是一个指针。标准的
list<T>和vector<T>类不在乎,为什么你的List<T>?它在做什么取决于模板参数是类类型?
标签: c++ templates segmentation-fault sfinae