diff --git a/src/entt/entity/entity.hpp b/src/entt/entity/entity.hpp index 719cde285..2cc28f477 100644 --- a/src/entt/entity/entity.hpp +++ b/src/entt/entity/entity.hpp @@ -106,10 +106,10 @@ public: * @return The integral representation of the version part. */ [[nodiscard]] static constexpr version_type to_version(const value_type value) noexcept { - if constexpr(Traits::version_mask) { - return (static_cast(to_integral(value) >> length) & version_mask); - } else { + if constexpr(Traits::version_mask == 0u) { return version_type{}; + } else { + return (static_cast(to_integral(value) >> length) & version_mask); } } @@ -134,10 +134,10 @@ public: * @return A properly constructed identifier. */ [[nodiscard]] static constexpr value_type construct(const entity_type entity, const version_type version) noexcept { - if constexpr(Traits::version_mask) { - return value_type{(entity & entity_mask) | (static_cast(version & version_mask) << length)}; - } else { + if constexpr(Traits::version_mask == 0u) { return value_type{entity & entity_mask}; + } else { + return value_type{(entity & entity_mask) | (static_cast(version & version_mask) << length)}; } } @@ -152,10 +152,10 @@ public: * @return A properly constructed identifier. */ [[nodiscard]] static constexpr value_type combine(const entity_type lhs, const entity_type rhs) noexcept { - if constexpr(Traits::version_mask) { - return value_type{(lhs & entity_mask) | (rhs & (version_mask << length))}; - } else { + if constexpr(Traits::version_mask == 0u) { return value_type{lhs & entity_mask}; + } else { + return value_type{(lhs & entity_mask) | (rhs & (version_mask << length))}; } } }; @@ -327,10 +327,10 @@ struct tombstone_t { [[nodiscard]] constexpr bool operator==(const Entity entity) const noexcept { using traits_type = entt_traits; - if constexpr(traits_type::version_mask) { - return (traits_type::to_version(entity) == traits_type::to_version(*this)); - } else { + if constexpr(traits_type::version_mask == 0u) { return false; + } else { + return (traits_type::to_version(entity) == traits_type::to_version(*this)); } }