【发布时间】:2019-03-18 23:33:16
【问题描述】:
考虑以下代码:
SmartPointer<Data> Fix(SmartPointer<Data> data)
{
return { /* Fixed Data */ };
}
SmartPointer<Data> Fix(SmartPointer<DataWrapper> dataWrapper)
{
return Fix(dataWrapper->Data());
}
我将如何重写它以使其不会导致“错误 C2668:对重载函数的模糊调用”?
注意:我也希望能够传入一个子类,例如 SmartPointer<SubclassOfDataWrapper>,并将其解析为超类的重载函数。
【问题讨论】:
标签: c++ c++11 overloading sfinae ambiguous-call