diff --git a/src/entt/meta/meta.hpp b/src/entt/meta/meta.hpp index 75e2a2e67..1d5e8efb1 100644 --- a/src/entt/meta/meta.hpp +++ b/src/entt/meta/meta.hpp @@ -1237,7 +1237,8 @@ public: } if(sz == 0u && node.default_constructor) { - return node.default_constructor(); + const auto &ctx_TODO = locator::value_or(); + return node.default_constructor(ctx_TODO); } return {}; diff --git a/src/entt/meta/node.hpp b/src/entt/meta/node.hpp index 474218fa4..879174954 100644 --- a/src/entt/meta/node.hpp +++ b/src/entt/meta/node.hpp @@ -123,7 +123,7 @@ struct meta_type_node { meta_traits traits{meta_traits::is_none}; size_type size_of{0u}; meta_type_node (*remove_pointer)(const meta_context &) noexcept {}; - meta_any (*default_constructor)(){}; + meta_any (*default_constructor)(const meta_ctx &){}; double (*conversion_helper)(void *, const void *){}; meta_any (*from_void)(void *, const void *){}; meta_template_node templ{}; @@ -195,7 +195,7 @@ template &resolve>>}; if constexpr(std::is_default_constructible_v) { - node.default_constructor = +[]() { return meta_any{std::in_place_type}; }; + node.default_constructor = +[](const meta_ctx &ctx_TODO) { return meta_any{std::in_place_type}; }; } if constexpr(std::is_arithmetic_v) {