Просмотр исходного кода

workaround for a wrong warning emitted by GCC8 (close #227)

Michele Caini 6 лет назад
Родитель
Сommit
1414c5feac
2 измененных файлов с 6 добавлено и 6 удалено
  1. 2 2
      src/entt/entity/registry.hpp
  2. 4 4
      test/entt/entity/group.cpp

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

@@ -116,7 +116,7 @@ class basic_registry {
                     this->construct(entt);
                 }
             } else if constexpr(std::disjunction_v<std::is_same<Exclude, Component>...>) {
-                if((reg.pool<Get>()->has(entt) && ...) && !((!std::is_same_v<Exclude, Component> && reg.pool<Exclude>()->has(entt)) || ...)) {
+                if((reg.pool<Get>()->has(entt) && ...) && ((std::is_same_v<Exclude, Component> || !reg.pool<Exclude>()->has(entt)) && ...)) {
                     this->construct(entt);
                 }
             }
@@ -154,7 +154,7 @@ class basic_registry {
             } else if constexpr(std::disjunction_v<std::is_same<Exclude, Component>...>) {
                 if((std::get<pool_type<Owned> *>(cpools)->has(entt) && ...)
                         && (reg.pool<Get>()->has(entt) && ...)
-                        && !((!std::is_same_v<Exclude, Component> && reg.pool<Exclude>()->has(entt)) || ...))
+                        && ((std::is_same_v<Exclude, Component> || !reg.pool<Exclude>()->has(entt)) && ...))
                 {
                     construct();
                 }

+ 4 - 4
test/entt/entity/group.cpp

@@ -816,14 +816,14 @@ TEST(OwningGroup, ExcludedComponents) {
     registry.assign<int>(e1, 1);
     registry.assign<char>(e1);
 
-    const auto group = registry.group<int>(entt::exclude<char>);
+    const auto group = registry.group<int>(entt::exclude<char, double>);
 
     const auto e2 = registry.create();
     registry.assign<int>(e2, 2);
 
     const auto e3 = registry.create();
     registry.assign<int>(e3, 3);
-    registry.assign<char>(e3);
+    registry.assign<double>(e3);
 
     for(const auto entity: group) {
         if(entity == e0) {
@@ -836,12 +836,12 @@ TEST(OwningGroup, ExcludedComponents) {
     }
 
     registry.assign<char>(e0);
-    registry.assign<char>(e2);
+    registry.assign<double>(e2);
 
     ASSERT_TRUE(group.empty());
 
     registry.remove<char>(e1);
-    registry.remove<char>(e3);
+    registry.remove<double>(e3);
 
     for(const auto entity: group) {
         if(entity == e1) {