我正在尝试实现一个类,并通过enable_if
重载其模板化成员函数。
class Foo {
public:
template <typename T, typename = enable_if_t<std::is_arithmetic<T>::value>>
void do() {}
template <typename T, typename = enable_if_t<!std::is_arithmetic<T>::value>>
void do() {}
};
显然,这个想法是将T
的实例化与算术类型分开。但是,编译器抱怨template <class T, class> void do()
无法重载。这究竟是怎么发生的?我该怎么做才能解决这个问题?