Fix the MSVC build

This commit is contained in:
Denis Blank 2017-03-02 22:27:13 +01:00
parent 705138dab5
commit 4271f59348

View File

@ -197,7 +197,7 @@ constexpr auto get(identity<T...>) noexcept {
} }
/// Helper to trick compilers about that a parameter pack is used /// Helper to trick compilers about that a parameter pack is used
template <typename... T> constexpr void unused(T&&... args) { template <typename... T> void unused(T&&... args) {
auto use = [](auto&& type) mutable { auto use = [](auto&& type) mutable {
(void)type; (void)type;
return 0; return 0;
@ -630,10 +630,6 @@ public:
return *this; return *this;
} }
ownership operator&&(ownership right) const noexcept {
return ownership(has_ownership() && right.has_ownership());
}
constexpr bool has_ownership() const noexcept { return is_owning; } constexpr bool has_ownership() const noexcept { return is_owning; }
void invalidate() noexcept { is_owning = false; } void invalidate() noexcept { is_owning = false; }
@ -907,10 +903,9 @@ void invoke_proxy(signature_hint_tag<Args...>, Continuation&& continuation,
template <typename T, typename... Args> template <typename T, typename... Args>
constexpr auto next_hint_of(util::identity<T> /*callback*/, constexpr auto next_hint_of(util::identity<T> /*callback*/,
signature_hint_tag<Args...> /*current*/) { signature_hint_tag<Args...> /*current*/) {
auto result = return decoration::invokerOf(util::identity_of<decltype(std::declval<T>()(
util::identity_of<decltype(std::declval<T>()(std::declval<Args>()...))>(); std::declval<Args>()...))>())
.hint();
return decoration::invokerOf(result).hint();
} }
/// Chains a callback together with a continuation and returns a continuation: /// Chains a callback together with a continuation and returns a continuation:
@ -1289,12 +1284,12 @@ constexpr auto common_result_of(Signature signature, signature_hint_tag<>,
template <typename Signature, typename First, typename... Args> template <typename Signature, typename First, typename... Args>
constexpr auto common_result_of(Signature signature, First first, constexpr auto common_result_of(Signature signature, First first,
Args... args) { Args... args) {
auto common = using Common =
util::identity<std::common_type_t<decltype(first_of(first)), util::identity<std::common_type_t<decltype(first_of(first)),
decltype(first_of(args))...>>{}; decltype(first_of(args))...>>;
return common_result_of(util::push(signature, common), util::pop_first(first), return common_result_of(util::push(signature, Common{}),
util::pop_first(args)...); util::pop_first(first), util::pop_first(args)...);
} }
/// Finalizes the any logic of a given composition /// Finalizes the any logic of a given composition