diff --git a/fluent/Continuable.h b/fluent/Continuable.h index 425b205..7fb0fd2 100644 --- a/fluent/Continuable.h +++ b/fluent/Continuable.h @@ -79,7 +79,7 @@ namespace detail public: // Empty for debugging _ContinuableImpl() - : _released(false) { } + : _released(false), _callback_insert() { } /// Deleted copy construct _ContinuableImpl(_ContinuableImpl const&) = delete; @@ -129,16 +129,17 @@ namespace detail static auto chain(_CTy&& functional, _ContinuableImpl&& me) -> typename convert_void_to_continuable<_NewRTy>::type { - return _ContinuableImpl, Callback<_NewATy...>>(); + return typename convert_void_to_continuable<_NewRTy>::type(); + // _ContinuableImpl, Callback<_NewATy...>>(); } }; template auto then(_CTy&& functional) - -> decltype(unary_chainer::type>:: - chain(std::declval<_CTy>())) + -> decltype(unary_chainer::type>>:: + chain(std::declval<_CTy>(), std::declval<_ContinuableImpl&&>())) { - return unary_chainer>:: + return unary_chainer::type>>:: chain(std::forward<_CTy>(functional), std::move(*this)); }