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

registry: extra check when moving a registry

Michele Caini 3 лет назад
Родитель
Сommit
f3e7f98b48
1 измененных файлов с 4 добавлено и 0 удалено
  1. 4 0
      src/entt/entity/registry.hpp

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

@@ -398,6 +398,8 @@ public:
           epool{std::move(other.epool)},
           pools{std::move(other.pools)},
           groups{std::move(other.groups)} {
+        ENTT_ASSERT(alloc_traits::is_always_equal::value || epool.get_allocator() == other.epool.get_allocator(), "Copying a registry is not allowed");
+
         rebind();
     }
 
@@ -407,6 +409,8 @@ public:
      * @return This registry.
      */
     basic_registry &operator=(basic_registry &&other) noexcept {
+        ENTT_ASSERT(alloc_traits::is_always_equal::value || epool.get_allocator() == other.epool.get_allocator(), "Copying a registry is not allowed");
+
         vars = std::move(other.vars);
         free_list = std::move(other.free_list);
         epool = std::move(other.epool);