继承构造函数(GCC和clang不同意)

时间:2016-01-24 07:46:58

标签: c++ clang language-lawyer c++14 inheriting-constructors

我正在尝试自定义std::function并从以下代码开始:

#include <functional>

template <typename>
struct my_function;

template <typename R, typename... Args>
struct my_function<R(Args...)> : std::function<R(Args...)> {
  using base = std::function<R(Args...)>;

  using base::function;
}; 

int main() {
  my_function<int(int)> f = nullptr;
}

我期望来自std::function的{​​{1}}对象的构造函数由std::nullptr_t继承。所以,代码应该编译好。虽然GCC 5.2(C ++ 14)在编译代码时没有问题,但是clang 3.6(C ++ 14)产生了以下错误信息,这很令人困惑:

my_function

这是一个铿锵的错误还是我的代码不正确?如果(非常幸运)后者是真的,我该如何修复代码?

0 个答案:

没有答案