소스 검색

entity: refine checks to fully support zero-sized versions/fully defined entity masks

Michele Caini 2 년 전
부모
커밋
2f1c99ab81
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      src/entt/entity/entity.hpp

+ 2 - 2
src/entt/entity/entity.hpp

@@ -66,8 +66,8 @@ template<typename Traits>
 class basic_entt_traits {
 class basic_entt_traits {
     static constexpr auto length = internal::popcount(Traits::entity_mask);
     static constexpr auto length = internal::popcount(Traits::entity_mask);
 
 
-    static_assert(Traits::entity_mask && ((typename Traits::entity_type{1} << length) == (Traits::entity_mask + 1)), "Invalid entity mask");
-    static_assert((typename Traits::entity_type{1} << internal::popcount(Traits::version_mask)) == (Traits::version_mask + 1), "Invalid version mask");
+    static_assert(Traits::entity_mask && ((Traits::entity_mask & (Traits::entity_mask + 1)) == 0), "Invalid entity mask");
+    static_assert((Traits::version_mask & (Traits::version_mask + 1)) == 0, "Invalid version mask");
 
 
 public:
 public:
     /*! @brief Value type. */
     /*! @brief Value type. */