【发布时间】:2020-08-07 06:03:43
【问题描述】:
我是 C++ 模板的新手。
这是我为测试std::enable_if_t 员工而编写的示例代码。
但它没有编译并出现以下错误:
No function template matches function template specialization 'print'
Candidate template ignored: couldn't infer template argument 'T'
我做错了什么?
#include <string>
#include <type_traits>
class IPoint
{
public:
IPoint()
: x(0), y(0)
{}
IPoint(int xValue, int yValue)
: x(xValue), y(yValue)
{}
public:
int x;
int y;
};
namespace utils
{
template<typename T>
typename std::enable_if_t<true, T> print(const std::string& s)
{
return 0;
}
template<>
inline IPoint print(const std::string& s)
{
return IPoint(0, 0);
}
}
【问题讨论】:
标签: c++ c++11 templates sfinae template-specialization