Jelajahi Sumber

minor changes

Michele Caini 6 tahun lalu
induk
melakukan
6649362fec
1 mengubah file dengan 5 tambahan dan 4 penghapusan
  1. 5 4
      src/entt/entity/registry.hpp

+ 5 - 4
src/entt/entity/registry.hpp

@@ -134,7 +134,7 @@ class basic_registry {
         void maybe_valid_if(const Entity entt) {
         void maybe_valid_if(const Entity entt) {
             if constexpr(std::disjunction_v<std::is_same<Get, Component>...>) {
             if constexpr(std::disjunction_v<std::is_same<Get, Component>...>) {
                 if(((std::is_same_v<Component, Get> || std::get<pool_type<Get> *>(cpools)->has(entt)) && ...)
                 if(((std::is_same_v<Component, Get> || std::get<pool_type<Get> *>(cpools)->has(entt)) && ...)
-                        && !(std::get<pool_type<Exclude> *>(cpools)->has(entt) || ...))
+                        && (!std::get<pool_type<Exclude> *>(cpools)->has(entt) && ...))
                 {
                 {
                     set.construct(entt);
                     set.construct(entt);
                 }
                 }
@@ -164,7 +164,7 @@ class basic_registry {
             if constexpr(std::disjunction_v<std::is_same<Owned, Component>..., std::is_same<Get, Component>...>) {
             if constexpr(std::disjunction_v<std::is_same<Owned, Component>..., std::is_same<Get, Component>...>) {
                 if(((std::is_same_v<Component, Owned> || std::get<pool_type<Owned> *>(cpools)->has(entt)) && ...)
                 if(((std::is_same_v<Component, Owned> || std::get<pool_type<Owned> *>(cpools)->has(entt)) && ...)
                         && ((std::is_same_v<Component, Get> || std::get<pool_type<Get> *>(cpools)->has(entt)) && ...)
                         && ((std::is_same_v<Component, Get> || std::get<pool_type<Get> *>(cpools)->has(entt)) && ...)
-                        && !(std::get<pool_type<Exclude> *>(cpools)->has(entt) || ...))
+                        && (!std::get<pool_type<Exclude> *>(cpools)->has(entt) && ...))
                 {
                 {
                     const auto pos = owned++;
                     const auto pos = owned++;
                     (std::get<pool_type<Owned> *>(cpools)->swap(std::get<pool_type<Owned> *>(cpools)->data()[pos], entt), ...);
                     (std::get<pool_type<Owned> *>(cpools)->swap(std::get<pool_type<Owned> *>(cpools)->data()[pos], entt), ...);
@@ -1307,14 +1307,15 @@ public:
      */
      */
     template<typename... Component, typename... Exclude>
     template<typename... Component, typename... Exclude>
     entt::basic_view<Entity, exclude_t<Exclude...>, Component...> view(exclude_t<Exclude...> = {}) {
     entt::basic_view<Entity, exclude_t<Exclude...>, Component...> view(exclude_t<Exclude...> = {}) {
-        return { assure<Component>()... };
+        static_assert(sizeof...(Component) > 0);
+        return { assure<Component>()..., assure<Exclude>()... };
     }
     }
 
 
     /*! @copydoc view */
     /*! @copydoc view */
     template<typename... Component, typename... Exclude>
     template<typename... Component, typename... Exclude>
     entt::basic_view<Entity, exclude_t<Exclude...>, Component...> view(exclude_t<Exclude...> = {}) const {
     entt::basic_view<Entity, exclude_t<Exclude...>, Component...> view(exclude_t<Exclude...> = {}) const {
         static_assert(std::conjunction_v<std::is_const<Component>...>);
         static_assert(std::conjunction_v<std::is_const<Component>...>);
-        return const_cast<basic_registry *>(this)->view<Component...>();
+        return const_cast<basic_registry *>(this)->view<Component...>(exclude<Exclude...>);
     }
     }
 
 
     /**
     /**