Jelajahi Sumber

meta: skip fetch_node if possible

skypjack 3 bulan lalu
induk
melakukan
7dac5af05d
1 mengubah file dengan 1 tambahan dan 1 penghapusan
  1. 1 1
      src/entt/meta/meta.hpp

+ 1 - 1
src/entt/meta/meta.hpp

@@ -425,7 +425,7 @@ public:
     [[nodiscard]] Type *try_cast() {
         auto *elem = any_cast<Type>(&storage);
         // NOLINTNEXTLINE(bugprone-casting-through-void)
-        return ((elem != nullptr) || (vtable == nullptr)) ? elem : static_cast<Type *>(const_cast<constness_as_t<void, Type> *>(internal::try_cast(internal::meta_context::from(*ctx), fetch_node(), type_hash<std::remove_const_t<Type>>::value(), static_cast<constness_as_t<any, Type> &>(storage).data())));
+        return ((elem != nullptr) || (vtable == nullptr) || storage.has_value<std::remove_const_t<std::remove_reference_t<Type>>>()) ? elem : static_cast<Type *>(const_cast<constness_as_t<void, Type> *>(internal::try_cast(internal::meta_context::from(*ctx), fetch_node(), type_hash<std::remove_const_t<Type>>::value(), static_cast<constness_as_t<any, Type> &>(storage).data())));
     }
 
     /**