diff --git a/src/entt/core/enum.hpp b/src/entt/core/enum.hpp index ab792b551..de43c6549 100644 --- a/src/entt/core/enum.hpp +++ b/src/entt/core/enum.hpp @@ -16,7 +16,7 @@ struct enum_as_bitmask: stl::false_type {}; /*! @copydoc enum_as_bitmask */ template requires requires { - requires std::is_enum_v; + requires stl::is_enum_v; { Type::_entt_enum_as_bitmask } -> std::same_as; } struct enum_as_bitmask: stl::true_type {}; @@ -34,7 +34,7 @@ inline constexpr bool enum_as_bitmask_v = enum_as_bitmask::value; */ template // check again that it is an enum to deal with incorrect specializations -concept enum_bitmask = std::is_enum_v && enum_as_bitmask_v; +concept enum_bitmask = stl::is_enum_v && enum_as_bitmask_v; } // namespace entt diff --git a/src/entt/entity/entity.hpp b/src/entt/entity/entity.hpp index 93afd7dde..0e7c35951 100644 --- a/src/entt/entity/entity.hpp +++ b/src/entt/entity/entity.hpp @@ -20,7 +20,7 @@ struct entt_traits; template requires requires { - requires std::is_enum_v; + requires stl::is_enum_v; typename internal::entt_traits>::value_type; } struct entt_traits: entt_traits> { diff --git a/src/entt/meta/factory.hpp b/src/entt/meta/factory.hpp index 67f4e9360..082a79999 100644 --- a/src/entt/meta/factory.hpp +++ b/src/entt/meta/factory.hpp @@ -520,7 +520,7 @@ public: */ template meta_factory traits(const Value value, const bool unset = false) { - static_assert(std::is_enum_v, "Invalid enum type"); + static_assert(stl::is_enum_v, "Invalid enum type"); base_type::traits(internal::user_to_meta_traits(value), unset); return *this; } diff --git a/src/entt/meta/meta.hpp b/src/entt/meta/meta.hpp index 2800dab75..20494fa8b 100644 --- a/src/entt/meta/meta.hpp +++ b/src/entt/meta/meta.hpp @@ -498,7 +498,7 @@ public: if(storage.has_value>()) { return as_ref(); } else if(*this) { - if constexpr(std::is_arithmetic_v> || std::is_enum_v>) { + if constexpr(std::is_arithmetic_v> || stl::is_enum_v>) { if(const auto &from = fetch_node(); from.conversion_helper) { return meta_any{*ctx, static_cast(from.conversion_helper(nullptr, storage.data()))}; } diff --git a/src/entt/meta/node.hpp b/src/entt/meta/node.hpp index 5a4dbe09c..18cc36d3d 100644 --- a/src/entt/meta/node.hpp +++ b/src/entt/meta/node.hpp @@ -44,14 +44,14 @@ enum class meta_traits : std::uint32_t { }; template -requires std::is_enum_v +requires stl::is_enum_v [[nodiscard]] auto meta_to_user_traits(const meta_traits traits) noexcept { constexpr auto shift = std::popcount(static_cast>(meta_traits::_user_defined_traits)); return Type{static_cast>(static_cast>(traits) >> shift)}; } template -requires std::is_enum_v +requires stl::is_enum_v [[nodiscard]] auto user_to_meta_traits(const Type value) noexcept { constexpr auto shift = std::popcount(static_cast>(meta_traits::_user_defined_traits)); const auto traits = static_cast>(static_cast>(value)); @@ -219,7 +219,7 @@ auto setup_node_for() noexcept { | (std::is_integral_v ? meta_traits::is_integral : meta_traits::is_none) | (std::is_signed_v ? meta_traits::is_signed : meta_traits::is_none) | (stl::is_array_v ? meta_traits::is_array : meta_traits::is_none) - | (std::is_enum_v ? meta_traits::is_enum : meta_traits::is_none) + | (stl::is_enum_v ? meta_traits::is_enum : meta_traits::is_none) | (std::is_class_v ? meta_traits::is_class : meta_traits::is_none) | (stl::is_pointer_v ? meta_traits::is_pointer : meta_traits::is_none) | (is_meta_pointer_like_v ? meta_traits::is_pointer_like : meta_traits::is_none) @@ -238,7 +238,7 @@ auto setup_node_for() noexcept { node.conversion_helper = +[](void *lhs, const void *rhs) { return lhs ? static_cast(*static_cast(lhs) = static_cast(*static_cast(rhs))) : static_cast(*static_cast(rhs)); }; - } else if constexpr(std::is_enum_v) { + } else if constexpr(stl::is_enum_v) { node.conversion_helper = +[](void *lhs, const void *rhs) { return lhs ? static_cast(*static_cast(lhs) = static_cast(static_cast>(*static_cast(rhs)))) : static_cast(*static_cast(rhs)); }; diff --git a/src/entt/stl/type_traits.hpp b/src/entt/stl/type_traits.hpp index 3fd75ac26..6500f6db9 100644 --- a/src/entt/stl/type_traits.hpp +++ b/src/entt/stl/type_traits.hpp @@ -21,6 +21,7 @@ using std::is_convertible_v; using std::is_copy_assignable_v; using std::is_copy_constructible_v; using std::is_default_constructible_v; +using std::is_enum_v; using std::is_function_v; using std::is_invocable; using std::is_invocable_r;