首页 > 解决方案 > 结合带/不带参数的两个接口

问题描述

我有两个模板类,我认为有一种方法可以与 std::enable_if 组合成一个,但不是 100% 确定,有人知道吗?

template <typename ReturnType>
class NoArgBase {
  std::function<ReturnType(void)> func_;

 public:
  explicit NoArgBase(std::function<ReturnType(void)> func)
      : func_{std::move(func)} {}
  ReturnType operator()() const {
    return func_();
  }
};

template <typename ReturnType, typename... Args>
class ArgBase {
  std::function<ReturnType(Args...)> func_;

 public:
  explicit ArgBase(std::function<ReturnType(Args...)> func)
      : func_{std::move(func)} {}
  ReturnType operator()(Args... args) const {
    return func_(args...);
  }
};

标签: c++templates

解决方案


推荐阅读