Kaynağa Gözat

meta: removed redundant meta_traits::is_pointer

Michele Caini 3 yıl önce
ebeveyn
işleme
48d767749d
2 değiştirilmiş dosya ile 4 ekleme ve 6 silme
  1. 1 1
      src/entt/meta/meta.hpp
  2. 3 5
      src/entt/meta/node.hpp

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

@@ -1070,7 +1070,7 @@ public:
      * @return True if the underlying type is a pointer, false otherwise.
      */
     [[nodiscard]] bool is_pointer() const noexcept {
-        return !!(node->traits & internal::meta_traits::is_pointer);
+        return node != node->remove_pointer();
     }
 
     /**

+ 3 - 5
src/entt/meta/node.hpp

@@ -34,10 +34,9 @@ enum class meta_traits : std::uint32_t {
     is_array = 0x0020,
     is_enum = 0x0040,
     is_class = 0x0080,
-    is_pointer = 0x0100,
-    is_meta_pointer_like = 0x0200,
-    is_meta_sequence_container = 0x0400,
-    is_meta_associative_container = 0x0800,
+    is_meta_pointer_like = 0x0100,
+    is_meta_sequence_container = 0x0200,
+    is_meta_associative_container = 0x0400,
     _entt_enum_as_bitmask
 };
 
@@ -177,7 +176,6 @@ public:
                 | (std::is_array_v<Type> ? internal::meta_traits::is_array : internal::meta_traits::is_none)
                 | (std::is_enum_v<Type> ? internal::meta_traits::is_enum : internal::meta_traits::is_none)
                 | (std::is_class_v<Type> ? internal::meta_traits::is_class : internal::meta_traits::is_none)
-                | (std::is_pointer_v<Type> ? internal::meta_traits::is_pointer : internal::meta_traits::is_none)
                 | (is_meta_pointer_like_v<Type> ? internal::meta_traits::is_meta_pointer_like : internal::meta_traits::is_none)
                 | (is_complete_v<meta_sequence_container_traits<Type>> ? internal::meta_traits::is_meta_sequence_container : internal::meta_traits::is_none)
                 | (is_complete_v<meta_associative_container_traits<Type>> ? internal::meta_traits::is_meta_associative_container : internal::meta_traits::is_none),