diff --git a/src/entt/meta/factory.hpp b/src/entt/meta/factory.hpp index 78300bd8d..645d95e84 100644 --- a/src/entt/meta/factory.hpp +++ b/src/entt/meta/factory.hpp @@ -181,16 +181,16 @@ meta_any invoke([[maybe_unused]] meta_handle handle, meta_any *args, std::index_ using helper_type = meta_function_helper_t; meta_any any{}; - [[maybe_unused]] const auto direct = std::make_tuple([args](meta_any *curr) { - using arg_type = std::tuple_element_t; - auto *instance = curr->try_cast(); + [[maybe_unused]] const auto direct = std::make_tuple([any = args+Indexes](const auto index) { + using arg_type = std::tuple_element_t; + auto *instance = any->template try_cast(); - if(!instance && (args+Indexes)->convert()) { - instance = (args+Indexes)->try_cast(); + if(!instance && any->template convert()) { + instance = any->template try_cast(); } return instance; - }(args+Indexes)...); + }(std::integral_constant{})...); if constexpr(std::is_function_v>) { if((std::get(direct) && ...)) {