diff --git a/loader/include/Geode/cocos/platform/CCPlatformMacros.h b/loader/include/Geode/cocos/platform/CCPlatformMacros.h index 5b01ee38..f9474938 100644 --- a/loader/include/Geode/cocos/platform/CCPlatformMacros.h +++ b/loader/include/Geode/cocos/platform/CCPlatformMacros.h @@ -137,8 +137,7 @@ namespace geode { namespace addresser { template - Class* friendCreate(typename std::enable_if_t< - std::is_same_v>*); + Class* friendCreate(typename std::void_t(&Class::create))>*); } } @@ -151,9 +150,8 @@ namespace geode { friend geode::Result \ geode::modifier::handlerMetadataForAddress(uintptr_t address); \ template \ - friend Class* \ - geode::addresser::friendCreate(typename std::enable_if_t< \ - std::is_same_v>*); + friend Class* geode::addresser:: \ + friendCreate(typename std::void_t(&Class::create))>*); #define GEODE_ADD(...) __VA_ARGS__ diff --git a/loader/include/Geode/utils/addresser.hpp b/loader/include/Geode/utils/addresser.hpp index 6c3e5998..2079990c 100644 --- a/loader/include/Geode/utils/addresser.hpp +++ b/loader/include/Geode/utils/addresser.hpp @@ -28,7 +28,7 @@ namespace geode::addresser { inline F rthunkAdjust(T func, F self); template - Class* friendCreate(typename std::enable_if_t>*) { + Class* friendCreate(typename std::void_t(&Class::create))>*) { return Class::create(); }