Răsfoiți Sursa

meta: minor changes

Michele Caini 3 ani în urmă
părinte
comite
e22ea5e189
1 a modificat fișierele cu 4 adăugiri și 9 ștergeri
  1. 4 9
      src/entt/meta/meta.hpp

+ 4 - 9
src/entt/meta/meta.hpp

@@ -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 */