From 352f7c8af0455eddc792db03570cc4ab8511ad39 Mon Sep 17 00:00:00 2001 From: Denis Blank Date: Wed, 1 Jul 2015 20:44:56 +0200 Subject: [PATCH] add size --- include/Continuable.h | 20 ++++++++++++-------- test.cpp | 1 + 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/include/Continuable.h b/include/Continuable.h index 3bd70e9..762cdd6 100644 --- a/include/Continuable.h +++ b/include/Continuable.h @@ -434,20 +434,23 @@ namespace detail return remove_void_trait(box_continuable_trait(std::forward<_CTy>(functional))); } - template + template struct multiple_result_maker; - template - struct multiple_result_maker, fu::identity> + template + struct multiple_result_maker, fu::identity> { typedef fu::identity arguments_t; typedef fu::identity arguments_storage_t; + + static size_t const size = Count; }; - template - struct multiple_result_maker + template + struct multiple_result_maker : public multiple_result_maker< + Count + 1, typename concat_identities< Args, typename unary_chainer_t::callback_arguments_t @@ -458,9 +461,10 @@ namespace detail >::type > { }; - template - struct multiple_result_maker + template + struct multiple_result_maker : public multiple_result_maker< + Count + 1, typename concat_identities< Args, typename unary_chainer_t::callback_arguments_t @@ -474,7 +478,7 @@ namespace detail template using result_maker_of_t = - multiple_result_maker, fu::identity<>, Args...>; + multiple_result_maker<0, fu::identity<>, fu::identity<>, Args...>; }; } diff --git a/test.cpp b/test.cpp index adc0e64..1de7cd0 100644 --- a/test.cpp +++ b/test.cpp @@ -245,6 +245,7 @@ int main(int /*argc*/, char** /*argv*/) maker::arguments_t test282_args; maker::arguments_storage_t test282_pack; + auto test282_size = maker::size; // static_assert(std::is_same<>::value,