diff --git a/src/entt/meta/factory.hpp b/src/entt/meta/factory.hpp index a5bd6470f..b5daa5a49 100644 --- a/src/entt/meta/factory.hpp +++ b/src/entt/meta/factory.hpp @@ -211,7 +211,7 @@ struct meta_factory { nullptr, internal::meta_info::resolve(), [](const void *instance) -> meta_any { - return (static_cast(instance)->*Candidate)(); + return forward_as_meta(static_cast(instance)->*Candidate)(); } }; @@ -232,7 +232,7 @@ struct meta_factory { nullptr, internal::meta_info::resolve(), [](const void *instance) -> meta_any { - return Candidate(*static_cast(instance)); + return forward_as_meta(Candidate(*static_cast(instance))); } }; @@ -261,7 +261,7 @@ struct meta_factory { nullptr, internal::meta_info::resolve(), [](const void *instance) -> meta_any { - return static_cast(*static_cast(instance)); + return forward_as_meta(static_cast(*static_cast(instance))); } };