diff --git a/src/entt/meta/node.hpp b/src/entt/meta/node.hpp index de5a3d4ba..df6fd8c0b 100644 --- a/src/entt/meta/node.hpp +++ b/src/entt/meta/node.hpp @@ -157,15 +157,14 @@ class ENTT_API meta_node { } [[nodiscard]] static auto *meta_from_void() noexcept { - if constexpr(std::is_same_v || std::is_array_v || std::is_function_v) { + if constexpr(std::is_same_v || std::is_function_v) { return static_cast>(nullptr); } else { return +[](void *element, const void *as_const) { - if(element) { - return meta_any{std::in_place_type, *static_cast(element)}; - } + using value_type = std::decay_t; - return meta_any{std::in_place_type, *static_cast(as_const)}; + return element ? meta_any{std::in_place_type, *static_cast(element)} + : meta_any{std::in_place_type, *static_cast(as_const)}; }; } }