From dbd955a46cf112468be083eb3aab503b154c2971 Mon Sep 17 00:00:00 2001 From: Denis Blank Date: Tue, 11 Aug 2015 21:06:06 +0200 Subject: [PATCH] re-enable signature erasure --- Incubator.cpp | 4 ++++ include/Continuable.h | 11 +++-------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/Incubator.cpp b/Incubator.cpp index 8de093e..b98c837 100644 --- a/Incubator.cpp +++ b/Incubator.cpp @@ -610,6 +610,10 @@ void some_examples() { }) .then([] + { + return CastSpellPromise(3837); + }) + .then([] { }); diff --git a/include/Continuable.h b/include/Continuable.h index 87a7430..e7166fe 100644 --- a/include/Continuable.h +++ b/include/Continuable.h @@ -82,7 +82,7 @@ private: } } - /// Internal onstructor for continuation + /// Internal constructor for continuation template Continuable(_FTy&& callback_insert, Continuable<_RATy...>&& right) : _callback_insert(std::forward<_FTy>(callback_insert)), _released(right._released) @@ -133,10 +133,6 @@ public: auto then(_CTy&& functional) -> typename detail::continuable_unwrap<_CTy, _ATy...>::continuable_t { - /*static_assert(std::is_same, - typename detail::continuable_unwrap<_CTy, _ATy...>::arguments_t>::value, - "Given function signature isn't correct, for now it must match strictly!");*/ - ForwardFunction&& callback = std::move(_callback_insert); auto&& corrected = detail::continuable_corrector<_ATy...>::correct(std::forward<_CTy>(functional)); @@ -342,10 +338,9 @@ namespace detail template static inline auto partial_signature_corrector(_CTy&& functional) - -> _CTy// decltype(correctors::partial_signature_corrector<_ATy...>::correct(std::declval<_CTy>())) + -> decltype(correctors::partial_signature_corrector<_ATy...>::correct(std::declval<_CTy>())) { - // return correctors::partial_signature_corrector<_ATy...>::correct(std::forward<_CTy>(functional)); - return std::forward<_CTy>(functional); + return correctors::partial_signature_corrector<_ATy...>::correct(std::forward<_CTy>(functional)); } /// Wrap Continuables into the continuable returning functional type.