Ver Fonte

minor changes (close #192)

Michele Caini há 7 anos atrás
pai
commit
9e4591554f
2 ficheiros alterados com 6 adições e 6 exclusões
  1. 5 5
      src/entt/entity/group.hpp
  2. 1 1
      src/entt/entity/registry.hpp

+ 5 - 5
src/entt/entity/group.hpp

@@ -87,7 +87,7 @@ class group;
  */
 template<typename Entity, typename... Get>
 class group<Entity, get_t<Get...>> {
-    static_assert(sizeof...(Get));
+    static_assert(sizeof...(Get) > 0);
 
     /*! @brief A registry is allowed to create groups. */
     friend class registry<Entity>;
@@ -339,7 +339,7 @@ private:
  */
 template<typename Entity, typename... Get, typename... Owned>
 class group<Entity, get_t<Get...>, Owned...> {
-    static_assert(sizeof...(Get) + sizeof...(Owned));
+    static_assert(sizeof...(Get) + sizeof...(Owned) > 0);
 
     /*! @brief A registry is allowed to create groups. */
     friend class registry<Entity>;
@@ -541,11 +541,11 @@ public:
 
         while(std::get<0>(raw) != cend) {
             if constexpr(std::is_invocable_v<Func, std::add_lvalue_reference_t<Owned>..., std::add_lvalue_reference_t<Get>...>) {
-                if constexpr(sizeof...(Get)) {
+                if constexpr(sizeof...(Get) == 0) {
+                    func(*(std::get<component_iterator_type<Owned>>(raw)++)...);
+                } else {
                     const auto entity = *(data++);
                     func(*(std::get<component_iterator_type<Owned>>(raw)++)..., std::get<pool_type<Get> *>(pools)->get(entity)...);
-                } else {
-                    func(*(std::get<component_iterator_type<Owned>>(raw)++)...);
                 }
             } else {
                 const auto entity = *(data++);

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

@@ -1211,7 +1211,7 @@ public:
     template<typename... Owned, typename... Get, typename... Exclude>
     entt::group<Entity, get_t<Get...>, Owned...> group(get_t<Get...>, exclude_t<Exclude...> = {}) {
         static_assert(sizeof...(Owned) + sizeof...(Get) + sizeof...(Exclude) > 1);
-        static_assert(sizeof...(Owned) + sizeof...(Get));
+        static_assert(sizeof...(Owned) + sizeof...(Get) > 0);
 
         if constexpr(sizeof...(Owned) == 0) {
             auto it = std::find_if(outer_groups.begin(), outer_groups.end(), [](auto &&gdata) {