From c1d02264d81b361aa131b3a6a9a4dc0b71b70ab8 Mon Sep 17 00:00:00 2001 From: Kirk Shoop Date: Thu, 20 Mar 2014 07:59:42 -0700 Subject: add variadic versions of make_... --- Rx/v2/src/rxcpp/rx-observer.hpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'Rx/v2/src/rxcpp/rx-observer.hpp') diff --git a/Rx/v2/src/rxcpp/rx-observer.hpp b/Rx/v2/src/rxcpp/rx-observer.hpp index f3e5181..6f3650c 100644 --- a/Rx/v2/src/rxcpp/rx-observer.hpp +++ b/Rx/v2/src/rxcpp/rx-observer.hpp @@ -446,6 +446,13 @@ struct tag_observer_set } +#if RXCPP_USE_VARIADIC_TEMPLATES +template +auto make_observer(Arg0&& a0, ArgN&&... an) + -> decltype(detail::make_observer_resolved(rxu::detail::resolve_arg_set(detail::tag_observer_set(), std::forward(a0), std::forward(an)...))) { + return detail::make_observer_resolved(rxu::detail::resolve_arg_set(detail::tag_observer_set(), std::forward(a0), std::forward(an)...)); +} +#else template auto make_observer(Arg0&& a0) -> decltype(detail::make_observer_resolved(rxu::detail::resolve_arg_set(detail::tag_observer_set(), std::forward(a0)))) { @@ -466,7 +473,15 @@ auto make_observer(Arg0&& a0, Arg1&& a1, Arg2&& a2, Arg3&& a3) -> decltype(detail::make_observer_resolved(rxu::detail::resolve_arg_set(detail::tag_observer_set(), std::forward(a0), std::forward(a1), std::forward(a2), std::forward(a3)))) { return detail::make_observer_resolved(rxu::detail::resolve_arg_set(detail::tag_observer_set(), std::forward(a0), std::forward(a1), std::forward(a2), std::forward(a3))); } +#endif +#if RXCPP_USE_VARIADIC_TEMPLATES +template +auto make_observer_dynamic(Arg0&& a0, ArgN&&... an) + -> decltype(detail::make_observer_dynamic_resolved(rxu::detail::resolve_arg_set(detail::tag_observer_set(), std::forward(a0), std::forward(an)...))) { + return detail::make_observer_dynamic_resolved(rxu::detail::resolve_arg_set(detail::tag_observer_set(), std::forward(a0), std::forward(an)...)); +} +#else template auto make_observer_dynamic(Arg0&& a0) -> decltype(detail::make_observer_dynamic_resolved(rxu::detail::resolve_arg_set(detail::tag_observer_set(), std::forward(a0)))) { @@ -487,6 +502,7 @@ auto make_observer_dynamic(Arg0&& a0, Arg1&& a1, Arg2&& a2, Arg3&& a3) -> decltype(detail::make_observer_dynamic_resolved(rxu::detail::resolve_arg_set(detail::tag_observer_set(), std::forward(a0), std::forward(a1), std::forward(a2), std::forward(a3)))) { return detail::make_observer_dynamic_resolved(rxu::detail::resolve_arg_set(detail::tag_observer_set(), std::forward(a0), std::forward(a1), std::forward(a2), std::forward(a3))); } +#endif } -- cgit v1.2.3