meta: minor changes

This commit is contained in:
Michele Caini
2022-10-18 10:59:53 +02:00
parent 496fefdd01
commit e22ea5e189

View File

@@ -477,8 +477,8 @@ public:
if constexpr(std::is_reference_v<Type> && !std::is_const_v<std::remove_reference_t<Type>>) {
return meta_any{meta_ctx_arg, *ctx};
} else {
auto target = internal::resolve<std::remove_cv_t<std::remove_reference_t<Type>>>(internal::meta_context::from(*ctx));
return allow_cast(meta_type{*ctx, target});
auto other = internal::resolve<std::remove_cv_t<std::remove_reference_t<Type>>>(internal::meta_context::from(*ctx));
return allow_cast(meta_type{*ctx, other});
}
}
@@ -489,13 +489,8 @@ public:
*/
template<typename Type>
bool allow_cast() {
auto target = internal::resolve<std::remove_cv_t<std::remove_reference_t<Type>>>(internal::meta_context::from(*ctx));
if constexpr(std::is_reference_v<Type> && !std::is_const_v<std::remove_reference_t<Type>>) {
return allow_cast(meta_type{*ctx, target}) && (storage.data() != nullptr);
} else {
return allow_cast(meta_type{*ctx, target});
}
auto other = internal::resolve<std::remove_cv_t<std::remove_reference_t<Type>>>(internal::meta_context::from(*ctx));
return allow_cast(meta_type{*ctx, other}) && (!(std::is_reference_v<Type> && !std::is_const_v<std::remove_reference_t<Type>>) || storage.data() != nullptr);
}
/*! @copydoc any::emplace */