diff --git a/include/Continuable.h b/include/Continuable.h index 6c3c5b6..bcd849f 100644 --- a/include/Continuable.h +++ b/include/Continuable.h @@ -58,6 +58,10 @@ namespace detail template struct unary_chainer; + // multiple_all_chainer forward declaration. + template + struct multiple_all_chainer; + // creates an empty callback. template struct create_empty_callback; @@ -95,6 +99,11 @@ namespace detail typedef typename result_t::CallbackFunction callback_t; }; + template + struct multiple_all_chainer<_CTy...> + { + }; + template using unary_chainer_t = unary_chainer< fu::return_type_of_t::type>, @@ -261,10 +270,20 @@ namespace detail return then(box_continuable(std::forward<_CTy>(continuable))); } + template + static void _all(_CTy&&...) + { + typedef multiple_all_chainer<_CTy...> type; + + } + /// Placeholder template - _ContinuableImpl& all(_CTy&&...) + _ContinuableImpl& all(_CTy&&... functionals) { + typedef multiple_all_chainer<_CTy...> type; + + _all(box_continuable(std::forward<_CTy>(functionals))...); return *this; }