فهرست منبع

snapshot: drop useless function

Michele Caini 2 سال پیش
والد
کامیت
1d89434812
1فایلهای تغییر یافته به همراه10 افزوده شده و 11 حذف شده
  1. 10 11
      src/entt/entity/snapshot.hpp

+ 10 - 11
src/entt/entity/snapshot.hpp

@@ -386,15 +386,6 @@ class basic_continuous_loader {
         }
     }
 
-    template<typename Component>
-    void remove_if_exists() {
-        auto &storage = reg->template storage<Component>();
-
-        for(auto &&ref: remloc) {
-            storage.remove(ref.second.first);
-        }
-    }
-
     template<typename Component, typename Archive, typename... Other, typename... Member>
     void assign(Archive &archive, [[maybe_unused]] Member Other::*...member) {
         auto &storage = reg->template storage<Component>();
@@ -485,7 +476,10 @@ public:
                 destroy(entt);
             }
         } else {
-            remove_if_exists<Type>();
+            for(auto &&ref: remloc) {
+                storage.remove(ref.second.first);
+            }
+
             assign<Type>(archive, Member...);
         }
 
@@ -523,7 +517,12 @@ public:
      */
     template<typename... Component, typename Archive, typename... Member, typename... Clazz>
     [[deprecated("use .component<Type>(archive, members...) instead")]] basic_continuous_loader &component(Archive &archive, Member Clazz::*...member) {
-        (remove_if_exists<Component>(), ...);
+        auto storage{std::forward_as_tuple(reg->template storage<Component>())...};
+
+        for(auto &&ref: remloc) {
+            std::apply([&ref](auto &&...elem) { elem.remove(ref.second.first); }, storage);
+        }
+
         (assign<Component>(archive, member...), ...);
         return *this;
     }