Explorar el Código

meta: prepare meta_prop rework

Michele Caini hace 1 año
padre
commit
116bb91123
Se han modificado 2 ficheros con 7 adiciones y 6 borrados
  1. 6 6
      src/entt/meta/factory.hpp
  2. 1 0
      src/entt/meta/node.hpp

+ 6 - 6
src/entt/meta/factory.hpp

@@ -106,13 +106,13 @@ protected:
         }
     }
 
-    void prop(const id_type key, meta_prop_node value) {
+    void prop(meta_prop_node node) {
         if(bucket == parent) {
-            details->prop[key] = std::move(value);
+            details->prop[node.id] = std::move(node);
         } else if(invoke == nullptr) {
-            find_member(details->data)->prop[key] = std::move(value);
+            find_member(details->data)->prop[node.id] = std::move(node);
         } else {
-            find_overload()->prop[key] = std::move(value);
+            find_overload()->prop[node.id] = std::move(node);
         }
     }
 
@@ -503,9 +503,9 @@ public:
     template<typename... Value>
     meta_factory prop(id_type id, [[maybe_unused]] Value &&...value) {
         if constexpr(sizeof...(Value) == 0u) {
-            base_type::prop(id, internal::meta_prop_node{&internal::resolve<void>});
+            base_type::prop(internal::meta_prop_node{id, &internal::resolve<void>});
         } else {
-            base_type::prop(id, internal::meta_prop_node{&internal::resolve<std::decay_t<Value>>..., std::make_shared<std::decay_t<Value>>(std::forward<Value>(value))...});
+            base_type::prop(internal::meta_prop_node{id, &internal::resolve<std::decay_t<Value>>..., std::make_shared<std::decay_t<Value>>(std::forward<Value>(value))...});
         }
 
         return *this;

+ 1 - 0
src/entt/meta/node.hpp

@@ -68,6 +68,7 @@ struct meta_custom_node {
 };
 
 struct meta_prop_node {
+    id_type id{};
     meta_type_node (*type)(const meta_context &) noexcept {};
     std::shared_ptr<void> value{};
 };