From a16b9cc0923ff7caa27f1e4dd9b07d6a5efbd7dd Mon Sep 17 00:00:00 2001 From: Michele Caini Date: Tue, 28 May 2024 18:37:59 +0200 Subject: [PATCH] meta: avoid C-like arrays --- src/entt/meta/meta.hpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/entt/meta/meta.hpp b/src/entt/meta/meta.hpp index 46b44f9ff..1bcbf8683 100644 --- a/src/entt/meta/meta.hpp +++ b/src/entt/meta/meta.hpp @@ -1,6 +1,7 @@ #ifndef ENTT_META_META_HPP #define ENTT_META_META_HPP +#include #include #include #include @@ -1031,8 +1032,8 @@ struct meta_func { template // NOLINTNEXTLINE(modernize-use-nodiscard) meta_any invoke(meta_handle instance, Args &&...args) const { - meta_any arguments[sizeof...(Args) + !sizeof...(Args)]{{*ctx, std::forward(args)}...}; - return invoke(std::move(instance), arguments, sizeof...(Args)); + std::array arguments{meta_any{*ctx, std::forward(args)}...}; + return invoke(std::move(instance), arguments.data(), sizeof...(Args)); } /*! @copydoc meta_data::prop */ @@ -1415,8 +1416,8 @@ public: */ template [[nodiscard]] meta_any construct(Args &&...args) const { - meta_any arguments[sizeof...(Args) + !sizeof...(Args)]{{*ctx, std::forward(args)}...}; - return construct(arguments, sizeof...(Args)); + std::array arguments{meta_any{*ctx, std::forward(args)}...}; + return construct(arguments.data(), sizeof...(Args)); } /** @@ -1474,8 +1475,8 @@ public: template // NOLINTNEXTLINE(modernize-use-nodiscard) meta_any invoke(const id_type id, meta_handle instance, Args &&...args) const { - meta_any arguments[sizeof...(Args) + !sizeof...(Args)]{{*ctx, std::forward(args)}...}; - return invoke(id, std::move(instance), arguments, sizeof...(Args)); + std::array arguments{meta_any{*ctx, std::forward(args)}...}; + return invoke(id, std::move(instance), arguments.data(), sizeof...(Args)); } /**