summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirk Shoop <kirk.shoop@microsoft.com>2016-09-07 00:42:58 -0700
committerKirk Shoop <kirk.shoop@microsoft.com>2016-09-07 00:45:18 -0700
commit3fe21ed32f5c53af72e6ac848eebae733853525d (patch)
tree7cc785f9ba5a56755d2209ea25e629a30fb646e9
parente623a25bc8e1a38e90d4f8d07ecd9f14343b0031 (diff)
downloadRxCpp-3fe21ed32f5c53af72e6ac848eebae733853525d.tar.gz
vs1015 workarounds
remove result_of usage add vs2015 build to appveyor
-rw-r--r--Rx/v2/src/rxcpp/rx-observable.hpp49
-rw-r--r--appveyor.yml5
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