diff options
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/hle/kernel/k_scoped_lock.h | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/core/hle/kernel/k_scoped_lock.h b/src/core/hle/kernel/k_scoped_lock.h index 03320859f..d7cc557b2 100644 --- a/src/core/hle/kernel/k_scoped_lock.h +++ b/src/core/hle/kernel/k_scoped_lock.h @@ -12,7 +12,7 @@ namespace Kernel { template <typename T> -concept KLockable = !std::is_reference<T>::value && requires(T & t) { +concept KLockable = !std::is_reference_v<T> && requires(T & t) { { t.Lock() } ->std::same_as<void>; { t.Unlock() } @@ -20,11 +20,7 @@ concept KLockable = !std::is_reference<T>::value && requires(T & t) { }; template <typename T> -requires KLockable<T> class KScopedLock : NonCopyable { - -private: - T* lock_ptr; - +requires KLockable<T> class KScopedLock { public: explicit KScopedLock(T* l) : lock_ptr(l) { this->lock_ptr->Lock(); @@ -34,6 +30,12 @@ public: ~KScopedLock() { this->lock_ptr->Unlock(); } + + KScopedLock(const KScopedLock&) = delete; + KScopedLock(KScopedLock&&) = delete; + +private: + T* lock_ptr; }; } // namespace Kernel |