summaryrefslogtreecommitdiff
path: root/Rx/v2/src/rxcpp/rx-observer.hpp
diff options
context:
space:
mode:
authorKirk Shoop <kirk.shoop@microsoft.com>2014-03-20 07:59:42 -0700
committerKirk Shoop <kirk.shoop@microsoft.com>2014-03-20 07:59:42 -0700
commitc1d02264d81b361aa131b3a6a9a4dc0b71b70ab8 (patch)
tree39dd72643bd23f0fdf65334b6f678def38162669 /Rx/v2/src/rxcpp/rx-observer.hpp
parent3ce422e73b636d17a9189b0096cbb15821a29f8e (diff)
downloadRxCpp-c1d02264d81b361aa131b3a6a9a4dc0b71b70ab8.tar.gz
add variadic versions of make_...
Diffstat (limited to 'Rx/v2/src/rxcpp/rx-observer.hpp')
-rw-r--r--Rx/v2/src/rxcpp/rx-observer.hpp16
1 files changed, 16 insertions, 0 deletions
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<class T, class Arg0, class... ArgN>
+auto make_observer(Arg0&& a0, ArgN&&... an)
+ -> decltype(detail::make_observer_resolved<T>(rxu::detail::resolve_arg_set(detail::tag_observer_set<T>(), std::forward<Arg0>(a0), std::forward<ArgN>(an)...))) {
+ return detail::make_observer_resolved<T>(rxu::detail::resolve_arg_set(detail::tag_observer_set<T>(), std::forward<Arg0>(a0), std::forward<ArgN>(an)...));
+}
+#else
template<class T, class Arg0>
auto make_observer(Arg0&& a0)
-> decltype(detail::make_observer_resolved<T>(rxu::detail::resolve_arg_set(detail::tag_observer_set<T>(), std::forward<Arg0>(a0)))) {
@@ -466,7 +473,15 @@ auto make_observer(Arg0&& a0, Arg1&& a1, Arg2&& a2, Arg3&& a3)
-> decltype(detail::make_observer_resolved<T>(rxu::detail::resolve_arg_set(detail::tag_observer_set<T>(), std::forward<Arg0>(a0), std::forward<Arg1>(a1), std::forward<Arg2>(a2), std::forward<Arg3>(a3)))) {
return detail::make_observer_resolved<T>(rxu::detail::resolve_arg_set(detail::tag_observer_set<T>(), std::forward<Arg0>(a0), std::forward<Arg1>(a1), std::forward<Arg2>(a2), std::forward<Arg3>(a3)));
}
+#endif
+#if RXCPP_USE_VARIADIC_TEMPLATES
+template<class T, class Arg0, class... ArgN>
+auto make_observer_dynamic(Arg0&& a0, ArgN&&... an)
+ -> decltype(detail::make_observer_dynamic_resolved<T>(rxu::detail::resolve_arg_set(detail::tag_observer_set<T>(), std::forward<Arg0>(a0), std::forward<ArgN>(an)...))) {
+ return detail::make_observer_dynamic_resolved<T>(rxu::detail::resolve_arg_set(detail::tag_observer_set<T>(), std::forward<Arg0>(a0), std::forward<ArgN>(an)...));
+}
+#else
template<class T, class Arg0>
auto make_observer_dynamic(Arg0&& a0)
-> decltype(detail::make_observer_dynamic_resolved<T>(rxu::detail::resolve_arg_set(detail::tag_observer_set<T>(), std::forward<Arg0>(a0)))) {
@@ -487,6 +502,7 @@ auto make_observer_dynamic(Arg0&& a0, Arg1&& a1, Arg2&& a2, Arg3&& a3)
-> decltype(detail::make_observer_dynamic_resolved<T>(rxu::detail::resolve_arg_set(detail::tag_observer_set<T>(), std::forward<Arg0>(a0), std::forward<Arg1>(a1), std::forward<Arg2>(a2), std::forward<Arg3>(a3)))) {
return detail::make_observer_dynamic_resolved<T>(rxu::detail::resolve_arg_set(detail::tag_observer_set<T>(), std::forward<Arg0>(a0), std::forward<Arg1>(a1), std::forward<Arg2>(a2), std::forward<Arg3>(a3)));
}
+#endif
}