From 7d2b4fcf57f6a7161d840396fc38973c57ea9983 Mon Sep 17 00:00:00 2001 From: skypjack Date: Tue, 9 Sep 2025 17:30:09 +0200 Subject: [PATCH] meta: internal changes --- TODO | 1 + src/entt/meta/meta.hpp | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/TODO b/TODO index ac0dd84e6..0d5012043 100644 --- a/TODO +++ b/TODO @@ -33,3 +33,4 @@ TODO: * paged vector as a standalone class * resource: shared_from_this? * change meta_any::base name, it's confusing due to meta_base_node and base types in meta +* delay meta_handle/meta_any creation as long as possible when setting/getting/invoking diff --git a/src/entt/meta/meta.hpp b/src/entt/meta/meta.hpp index 7ad503302..375f8c83f 100644 --- a/src/entt/meta/meta.hpp +++ b/src/entt/meta/meta.hpp @@ -518,9 +518,12 @@ public: template void emplace(Args &&...args) { storage.emplace(std::forward(args)...); - resolve = internal::resolve>>; - lazy_node = internal::meta_type_node{}; - vtable = &basic_vtable>>; + + if(auto *overload = internal::resolve>>; overload != resolve) { + resolve = overload; + lazy_node = internal::meta_type_node{}; + vtable = &basic_vtable>>; + } } /*! @copydoc any::assign */