diff options
author | Kirk Shoop <kirk.shoop@microsoft.com> | 2016-09-07 00:42:58 -0700 |
---|---|---|
committer | Kirk Shoop <kirk.shoop@microsoft.com> | 2016-09-07 00:45:18 -0700 |
commit | 3fe21ed32f5c53af72e6ac848eebae733853525d (patch) | |
tree | 7cc785f9ba5a56755d2209ea25e629a30fb646e9 | |
parent | e623a25bc8e1a38e90d4f8d07ecd9f14343b0031 (diff) | |
download | RxCpp-3fe21ed32f5c53af72e6ac848eebae733853525d.tar.gz |
vs1015 workarounds
remove result_of usage
add vs2015 build to appveyor
-rw-r--r-- | Rx/v2/src/rxcpp/rx-observable.hpp | 49 | ||||
-rw-r--r-- | appveyor.yml | 5 |
2 files changed, 7 insertions, 47 deletions
diff --git a/Rx/v2/src/rxcpp/rx-observable.hpp b/Rx/v2/src/rxcpp/rx-observable.hpp index 7e41319..88cf894 100644 --- a/Rx/v2/src/rxcpp/rx-observable.hpp +++ b/Rx/v2/src/rxcpp/rx-observable.hpp @@ -2190,20 +2190,6 @@ public: template<class Source, class TS, class C = rxu::types_checked> struct select_with_latest_from : public std::false_type { - template<class T0, class T1, class... TN> - void operator()(const Source&, T0, T1, TN...) const { - static_assert(is_coordination<T0>::value || - is_observable<T0>::value || - std::is_convertible<T0, std::function<void(typename T1::value_type, typename TN::value_type...)>>::value - , "T0 must be selector, coordination or observable"); - static_assert(is_observable<T1>::value || - std::is_convertible<T1, std::function<void(typename TN::value_type...)>>::value, "T1 must be selector or observable"); - static_assert(rxu::all_true<true, is_observable<TN>::value...>::value, "TN... must be observable"); - } - template<class T0> - void operator()(const Source&, T0) const { - static_assert(is_observable<T0>::value, "T0 must be observable"); - } }; template<class Source, class T0, class T1, class... TN> @@ -2213,7 +2199,7 @@ public: }; template<class Source, class Selector, class... TN> - struct select_with_latest_from<Source, rxu::types<Selector, TN...>, typename rxu::types_checked_from<typename Source::value_type, typename TN::value_type..., typename std::enable_if<!is_coordination<Selector>::value>::type, typename std::enable_if<!is_observable<Selector>::value>::type, typename std::result_of<Selector(typename Source::value_type, typename TN::value_type...)>::type, typename TN::observable_tag...>::type> + struct select_with_latest_from<Source, rxu::types<Selector, TN...>, typename rxu::types_checked_from<typename Source::value_type, typename TN::value_type..., typename std::enable_if<!is_coordination<Selector>::value>::type, typename std::enable_if<!is_observable<Selector>::value>::type, typename TN::observable_tag...>::type> : public std::true_type { typedef rxo::detail::with_latest_from<identity_one_worker, Selector, Source, TN...> operator_type; @@ -2276,7 +2262,6 @@ public: return select_with_latest_from<this_type, rxu::types<decltype(an)...>>{}(*this, std::move(an)...); } - /// \cond SHOW_SERVICE_MEMBERS template<class Source, class Coordination, class TS, class C = rxu::types_checked> struct select_combine_latest_cn : public std::false_type {}; @@ -2307,20 +2292,6 @@ public: template<class Source, class TS, class C = rxu::types_checked> struct select_combine_latest : public std::false_type { - template<class T0, class T1, class... TN> - void operator()(const Source&, T0, T1, TN...) const { - static_assert(is_coordination<T0>::value || - is_observable<T0>::value || - std::is_convertible<T0, std::function<void(typename T1::value_type, typename TN::value_type...)>>::value - , "T0 must be selector, coordination or observable"); - static_assert(is_observable<T1>::value || - std::is_convertible<T1, std::function<void(typename TN::value_type...)>>::value, "T1 must be selector or observable"); - static_assert(rxu::all_true<true, is_observable<TN>::value...>::value, "TN... must be observable"); - } - template<class T0> - void operator()(const Source&, T0) const { - static_assert(is_observable<T0>::value, "T0 must be observable"); - } }; template<class Source, class T0, class T1, class... TN> @@ -2330,7 +2301,7 @@ public: }; template<class Source, class Selector, class... TN> - struct select_combine_latest<Source, rxu::types<Selector, TN...>, typename rxu::types_checked_from<typename Source::value_type, typename TN::value_type..., typename std::enable_if<!is_coordination<Selector>::value>::type, typename std::enable_if<!is_observable<Selector>::value>::type, typename std::result_of<Selector(typename Source::value_type, typename TN::value_type...)>::type, typename TN::observable_tag...>::type> + struct select_combine_latest<Source, rxu::types<Selector, TN...>, typename rxu::types_checked_from<typename Source::value_type, typename TN::value_type..., typename std::enable_if<!is_coordination<Selector>::value>::type, typename std::enable_if<!is_observable<Selector>::value>::type, typename TN::observable_tag...>::type> : public std::true_type { typedef rxo::detail::combine_latest<identity_one_worker, Selector, Source, TN...> operator_type; @@ -2423,20 +2394,6 @@ public: template<class Source, class TS, class C = rxu::types_checked> struct select_zip : public std::false_type { - template<class T0, class T1, class... TN> - void operator()(const Source&, T0, T1, TN...) const { - static_assert(is_coordination<T0>::value || - is_observable<T0>::value || - std::is_convertible<T0, std::function<void(typename T1::value_type, typename TN::value_type...)>>::value - , "T0 must be selector, coordination or observable"); - static_assert(is_observable<T1>::value || - std::is_convertible<T1, std::function<void(typename TN::value_type...)>>::value, "T1 must be selector or observable"); - static_assert(rxu::all_true<true, is_observable<TN>::value...>::value, "TN... must be observable"); - } - template<class T0> - void operator()(const Source&, T0) const { - static_assert(is_observable<T0>::value, "T0 must be observable"); - } }; template<class Source, class T0, class T1, class... TN> @@ -2446,7 +2403,7 @@ public: }; template<class Source, class Selector, class... TN> - struct select_zip<Source, rxu::types<Selector, TN...>, typename rxu::types_checked_from<typename Source::value_type, typename TN::value_type..., typename std::enable_if<!is_coordination<Selector>::value>::type, typename std::enable_if<!is_observable<Selector>::value>::type, typename std::result_of<Selector(typename Source::value_type, typename TN::value_type...)>::type, typename TN::observable_tag...>::type> + struct select_zip<Source, rxu::types<Selector, TN...>, typename rxu::types_checked_from<typename Source::value_type, typename TN::value_type..., typename std::enable_if<!is_coordination<Selector>::value>::type, typename std::enable_if<!is_observable<Selector>::value>::type, typename TN::observable_tag...>::type> : public std::true_type { typedef rxo::detail::zip<identity_one_worker, Selector, Source, TN...> operator_type; diff --git a/appveyor.yml b/appveyor.yml index 09c7c9f..8aa2b02 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -9,7 +9,8 @@ branches: environment: matrix: - VSVER: Visual Studio 12 2013 Win64 -# - VSVER: Visual Studio 14 2015 Win64 + - os: Visual Studio 2015 + VSVER: Visual Studio 14 2015 Win64 platform: - x64 @@ -45,3 +46,5 @@ notifications: auth_token: secure: qaGjbI98VXZa7Zd2s3RmMzfA+ymrfWUDuzevdtOcHssEGBXbcoOJzLHNOmG+Y1nX channel: rxcpp + - provider: Webhook + url: https://webhooks.gitter.im/e/4c53c094183ccaa8d059 |