From 752c85a0309673d27ba11eba41a10db4c884ea97 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Fri, 18 Feb 2022 09:21:33 +0800 Subject: [PATCH] Add is_instance_v --- library/jni/include/utils/hook_helper.hpp | 2 +- library/jni/include/utils/jni_helper.hpp | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/library/jni/include/utils/hook_helper.hpp b/library/jni/include/utils/hook_helper.hpp index 7e73a42..bdb6139 100644 --- a/library/jni/include/utils/hook_helper.hpp +++ b/library/jni/include/utils/hook_helper.hpp @@ -166,7 +166,7 @@ concept HookerType = requires(T a) { template inline static bool HookSymNoHandle(const HookHandler &handler, void *original, T &arg) { if (original) { - if constexpr(is_instance::value) { + if constexpr(is_instance_v) { void *backup = handler.inline_hooker(original, reinterpret_cast(arg.replace)); arg.backup = reinterpret_cast(backup); } else { diff --git a/library/jni/include/utils/jni_helper.hpp b/library/jni/include/utils/jni_helper.hpp index d220296..3e4e4d7 100644 --- a/library/jni/include/utils/jni_helper.hpp +++ b/library/jni/include/utils/jni_helper.hpp @@ -20,6 +20,9 @@ template class U> struct is_instance, U> : public std::true_type { }; +template class U> +inline constexpr bool is_instance_v = is_instance::value; + template concept JObject = std::is_base_of_v, std::remove_pointer_t>; @@ -111,7 +114,7 @@ public: template concept ScopeOrRaw = std::is_convertible_v || - (is_instance, ScopedLocalRef>::value && + (is_instance_v, ScopedLocalRef> && std::is_convertible_v::BaseType, U>); template @@ -138,7 +141,7 @@ template inline auto UnwrapScope(T &&x) { if constexpr(std::is_same_v, std::string_view>) return x.data(); - else if constexpr(is_instance, ScopedLocalRef>::value) + else if constexpr(is_instance_v, ScopedLocalRef>) return x.get(); else return std::forward(x); }