使用enable_if_t重载模板化的类成员函数

时间:2016-05-29 01:06:00

标签: c++ templates c++11 sfinae

我正在尝试实现一个类,并通过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()无法重载。这究竟是怎么发生的?我该怎么做才能解决这个问题?

0 个答案:

没有答案