Переглянути джерело

registry: get_or_assign -> get_or_emplace

Michele Caini 6 роки тому
батько
коміт
16835e3928
2 змінених файлів з 8 додано та 2 видалено
  1. 0 1
      TODO
  2. 8 1
      src/entt/entity/registry.hpp

+ 0 - 1
TODO

@@ -19,7 +19,6 @@
 Next:
 * replace observer class with observer functions
 * get(cmp, entity) -> void *, set(cmp, entity, void *)
-* get_or_assign -> get_or_emplace
 
 * WIP:
  - deprecate snapshot, loader, ...

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

@@ -946,12 +946,19 @@ public:
      * @return Reference to the component owned by the entity.
      */
     template<typename Component, typename... Args>
-    decltype(auto) get_or_assign(const entity_type entity, Args &&... args) {
+    decltype(auto) get_or_emplace(const entity_type entity, Args &&... args) {
         ENTT_ASSERT(valid(entity));
         auto &cpool = assure<Component>();
         return cpool.has(entity) ? cpool.get(entity) : cpool.emplace(*this, entity, std::forward<Args>(args)...);
     }
 
+    /*! @copydoc get_or_emplace */
+    template<typename Component, typename... Args>
+    [[deprecated("use ::get_or_emplace instead")]]
+    decltype(auto) get_or_assign(const entity_type entity, Args &&... args) {
+        return get_or_emplace<Component>(entity, std::forward<Args>(args)...);
+    }
+
     /**
      * @brief Returns pointers to the given components for an entity.
      *