diff --git a/folly/futures/Future-inl.h b/folly/futures/Future-inl.h index a4ec35f..5604ed0 100644 --- a/folly/futures/Future-inl.h +++ b/folly/futures/Future-inl.h @@ -44,22 +44,10 @@ Future& Future::operator=(Future&& other) noexcept { } template -template -Future::Future( - const typename std::enable_if::value, F>::type& val) - : core_(nullptr) { - Promise p; - p.setValue(val); - *this = p.getFuture(); -} - -template -template -Future::Future( - typename std::enable_if::value, F>::type&& val) - : core_(nullptr) { - Promise p; - p.setValue(std::forward(val)); +template +Future::Future(T2&& val) : core_(nullptr) { + Promise p; + p.setValue(std::forward(val)); *this = p.getFuture(); } diff --git a/folly/futures/Future.h b/folly/futures/Future.h index a14d62c..8e2b3f1 100644 --- a/folly/futures/Future.h +++ b/folly/futures/Future.h @@ -213,14 +213,9 @@ class Future { Future(Future&&) noexcept; Future& operator=(Future&&) noexcept; - // makeFuture - template + /// Construct a Future from a value (perfect forwarding) /* implicit */ - Future(const typename std::enable_if::value, F>::type& val); - - template - /* implicit */ - Future(typename std::enable_if::value, F>::type&& val); + template Future(T2&& val); template ::value, int>::type = 0>