meta: internal changes

This commit is contained in:
skypjack
2025-09-09 17:30:09 +02:00
parent 3af8525eb8
commit 7d2b4fcf57
2 changed files with 7 additions and 3 deletions
+1
View File
@@ -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
+6 -3
View File
@@ -518,9 +518,12 @@ public:
template<typename Type, typename... Args>
void emplace(Args &&...args) {
storage.emplace<Type>(std::forward<Args>(args)...);
resolve = internal::resolve<std::remove_cv_t<std::remove_reference_t<Type>>>;
lazy_node = internal::meta_type_node{};
vtable = &basic_vtable<std::remove_cv_t<std::remove_reference_t<Type>>>;
if(auto *overload = internal::resolve<std::remove_cv_t<std::remove_reference_t<Type>>>; overload != resolve) {
resolve = overload;
lazy_node = internal::meta_type_node{};
vtable = &basic_vtable<std::remove_cv_t<std::remove_reference_t<Type>>>;
}
}
/*! @copydoc any::assign */