*: suppress a few warnings + fix a call that msvc accepted by mistake
This commit is contained in:
@@ -53,7 +53,7 @@ class basic_any {
|
||||
switch(op) {
|
||||
case operation::COPY:
|
||||
if constexpr(std::is_copy_constructible_v<base_type>) {
|
||||
as<basic_any>(to).emplace<base_type>(*static_cast<const base_type *>(from.instance));
|
||||
as<basic_any>(to).template emplace<base_type>(*static_cast<const base_type *>(from.instance));
|
||||
}
|
||||
break;
|
||||
case operation::MOVE:
|
||||
|
||||
@@ -301,8 +301,8 @@ public:
|
||||
[](const typename internal::meta_ctor_node::size_type index) ENTT_NOEXCEPT {
|
||||
return meta_arg(typename descriptor::args_type{}, index);
|
||||
},
|
||||
[](meta_any * const any) {
|
||||
return meta_invoke<Type, Candidate, Policy>({}, any, std::make_index_sequence<descriptor::args_type::size>{});
|
||||
[](meta_any * const args) {
|
||||
return meta_invoke<Type, Candidate, Policy>({}, args, std::make_index_sequence<descriptor::args_type::size>{});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -336,8 +336,8 @@ public:
|
||||
[](const typename internal::meta_ctor_node::size_type index) ENTT_NOEXCEPT {
|
||||
return meta_arg(typename descriptor::args_type{}, index);
|
||||
},
|
||||
[](meta_any * const any) {
|
||||
return meta_construct<Type, Args...>(any, std::make_index_sequence<descriptor::args_type::size>{});
|
||||
[](meta_any * const args) {
|
||||
return meta_construct<Type, Args...>(args, std::make_index_sequence<descriptor::args_type::size>{});
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -483,16 +483,16 @@ public:
|
||||
* wrapped element is dereferenceable, an invalid meta any otherwise.
|
||||
*/
|
||||
[[nodiscard]] meta_any operator*() ENTT_NOEXCEPT {
|
||||
meta_any any{};
|
||||
vtable(operation::DEREF, storage, &any);
|
||||
return any;
|
||||
meta_any ret{};
|
||||
vtable(operation::DEREF, storage, &ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*! @copydoc operator* */
|
||||
[[nodiscard]] meta_any operator*() const ENTT_NOEXCEPT {
|
||||
meta_any any{};
|
||||
vtable(operation::CDEREF, storage, &any);
|
||||
return any;
|
||||
meta_any ret{};
|
||||
vtable(operation::CDEREF, storage, &ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1343,9 +1343,9 @@ public:
|
||||
* @return A meta any containing the new instance, if any.
|
||||
*/
|
||||
[[nodiscard]] meta_any construct(meta_any * const args, const size_type sz) const {
|
||||
meta_any any{};
|
||||
internal::meta_visit<&node_type::ctor>([args, sz, &any](const auto *curr) { return (curr->arity == sz) && (any = curr->invoke(args)); }, node);
|
||||
return any;
|
||||
meta_any ret{};
|
||||
internal::meta_visit<&node_type::ctor>([args, sz, &ret](const auto *curr) { return (curr->arity == sz) && (ret = curr->invoke(args)); }, node);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -84,8 +84,8 @@ class poly_vtable {
|
||||
return std::invoke(Candidate, std::forward<Args>(args)...);
|
||||
};
|
||||
} else {
|
||||
entry = +[](Any &any, Args... args) -> Ret {
|
||||
return static_cast<Ret>(std::invoke(Candidate, any_cast<constness_as_t<Type, Any> &>(any), std::forward<Args>(args)...));
|
||||
entry = +[](Any &instance, Args... args) -> Ret {
|
||||
return static_cast<Ret>(std::invoke(Candidate, any_cast<constness_as_t<Type, Any> &>(instance), std::forward<Args>(args)...));
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user