meta: internal changes
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user