diff --git a/src/entt/poly/poly.hpp b/src/entt/poly/poly.hpp index 68a836e9f..4cf3f1847 100644 --- a/src/entt/poly/poly.hpp +++ b/src/entt/poly/poly.hpp @@ -85,7 +85,7 @@ class poly_vtable { }; } else { entry = +[](Any &any, Args... args) -> Ret { - return std::invoke(Candidate, any_cast &>(any), std::forward(args)...); + return static_cast(std::invoke(Candidate, any_cast &>(any), std::forward(args)...)); }; } } diff --git a/src/entt/signal/delegate.hpp b/src/entt/signal/delegate.hpp index 3d83f26a1..13f1dba3d 100644 --- a/src/entt/signal/delegate.hpp +++ b/src/entt/signal/delegate.hpp @@ -100,7 +100,7 @@ class delegate { [[nodiscard]] auto wrap(std::index_sequence) ENTT_NOEXCEPT { return [](const void *, Args... args) -> Ret { [[maybe_unused]] const auto arguments = std::forward_as_tuple(std::forward(args)...); - return Ret(std::invoke(Candidate, std::forward>>(std::get(arguments))...)); + return static_cast(std::invoke(Candidate, std::forward>>(std::get(arguments))...)); }; } @@ -109,7 +109,7 @@ class delegate { return [](const void *payload, Args... args) -> Ret { [[maybe_unused]] const auto arguments = std::forward_as_tuple(std::forward(args)...); Type *curr = static_cast(const_cast *>(payload)); - return Ret(std::invoke(Candidate, *curr, std::forward>>(std::get(arguments))...)); + return static_cast(std::invoke(Candidate, *curr, std::forward>>(std::get(arguments))...)); }; } @@ -118,7 +118,7 @@ class delegate { return [](const void *payload, Args... args) -> Ret { [[maybe_unused]] const auto arguments = std::forward_as_tuple(std::forward(args)...); Type *curr = static_cast(const_cast *>(payload)); - return Ret(std::invoke(Candidate, curr, std::forward>>(std::get(arguments))...)); + return static_cast(std::invoke(Candidate, curr, std::forward>>(std::get(arguments))...)); }; } diff --git a/test/entt/meta/meta_type.cpp b/test/entt/meta/meta_type.cpp index deec4a6e1..5eb96d5bd 100644 --- a/test/entt/meta/meta_type.cpp +++ b/test/entt/meta/meta_type.cpp @@ -68,7 +68,7 @@ struct overloaded_func_t { float f(int a, float b) { value = a; - return e(b); + return static_cast(e(static_cast(b))); } int g(int v) const { diff --git a/test/entt/poly/poly_deduced.cpp b/test/entt/poly/poly_deduced.cpp index 20fa94ac4..e9a11f253 100644 --- a/test/entt/poly/poly_deduced.cpp +++ b/test/entt/poly/poly_deduced.cpp @@ -11,7 +11,7 @@ struct Deduced: entt::type_list<> { void set(int v) { entt::poly_call<1>(*this, v); } int get() const { return entt::poly_call<2>(*this); } void decr() { entt::poly_call<3>(*this); } - int mul(int v) const { return entt::poly_call<4>(*this, v); } + int mul(int v) const { return static_cast(entt::poly_call<4>(*this, v)); } }; template