diff options
author | bunnei <bunneidev@gmail.com> | 2020-12-30 01:50:20 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-30 01:50:20 +0100 |
commit | 85cfd96f62177338de78d5ca6d7fa4eda0a3728b (patch) | |
tree | f36be5e67a3496534fa579e6edeb25c70529b448 | |
parent | Merge pull request #5246 from comex/xx-include (diff) | |
parent | k_priority_queue: Fix concepts use (diff) | |
download | yuzu-85cfd96f62177338de78d5ca6d7fa4eda0a3728b.tar yuzu-85cfd96f62177338de78d5ca6d7fa4eda0a3728b.tar.gz yuzu-85cfd96f62177338de78d5ca6d7fa4eda0a3728b.tar.bz2 yuzu-85cfd96f62177338de78d5ca6d7fa4eda0a3728b.tar.lz yuzu-85cfd96f62177338de78d5ca6d7fa4eda0a3728b.tar.xz yuzu-85cfd96f62177338de78d5ca6d7fa4eda0a3728b.tar.zst yuzu-85cfd96f62177338de78d5ca6d7fa4eda0a3728b.zip |
-rw-r--r-- | src/common/concepts.h | 4 | ||||
-rw-r--r-- | src/core/hle/kernel/k_priority_queue.h | 8 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/common/concepts.h b/src/common/concepts.h index 5bef3ad67..aa08065a7 100644 --- a/src/common/concepts.h +++ b/src/common/concepts.h @@ -31,4 +31,8 @@ concept DerivedFrom = requires { std::is_convertible_v<const volatile Derived*, const volatile Base*>; }; +// TODO: Replace with std::convertible_to when libc++ implements it. +template <typename From, typename To> +concept ConvertibleTo = std::is_convertible_v<From, To>; + } // namespace Common diff --git a/src/core/hle/kernel/k_priority_queue.h b/src/core/hle/kernel/k_priority_queue.h index 01a577d0c..99fb8fe93 100644 --- a/src/core/hle/kernel/k_priority_queue.h +++ b/src/core/hle/kernel/k_priority_queue.h @@ -8,11 +8,13 @@ #pragma once #include <array> +#include <concepts> #include "common/assert.h" #include "common/bit_set.h" #include "common/bit_util.h" #include "common/common_types.h" +#include "common/concepts.h" namespace Kernel { @@ -21,7 +23,7 @@ class Thread; template <typename T> concept KPriorityQueueAffinityMask = !std::is_reference_v<T> && requires(T & t) { { t.GetAffinityMask() } - ->std::convertible_to<u64>; + ->Common::ConvertibleTo<u64>; {t.SetAffinityMask(std::declval<u64>())}; { t.GetAffinity(std::declval<int32_t>()) } @@ -48,9 +50,9 @@ concept KPriorityQueueMember = !std::is_reference_v<T> && requires(T & t) { ->KPriorityQueueAffinityMask; { t.GetActiveCore() } - ->std::convertible_to<s32>; + ->Common::ConvertibleTo<s32>; { t.GetPriority() } - ->std::convertible_to<s32>; + ->Common::ConvertibleTo<s32>; }; template <typename Member, size_t _NumCores, int LowestPriority, int HighestPriority> |