Просмотр исходного кода

meta_any: replace ::owner (never released yet) with ::base

Michele Caini 1 год назад
Родитель
Сommit
0c5ca2f544
2 измененных файлов с 15 добавлено и 12 удалено
  1. 8 5
      src/entt/meta/meta.hpp
  2. 7 7
      test/entt/meta/meta_any.cpp

+ 8 - 5
src/entt/meta/meta.hpp

@@ -591,11 +591,6 @@ public:
         return meta_any{*this, storage.as_ref()};
     }
 
-    /*! @copydoc any::owner */
-    [[nodiscard]] bool owner() const noexcept {
-        return storage.owner();
-    }
-
     /**
      * @brief Returns the current mode of a meta any object.
      * @return The current mode of the meta any object.
@@ -604,6 +599,14 @@ public:
         return storage.policy();
     }
 
+    /**
+     * @brief Returns the underlying storage.
+     * @return The underlyig storage.
+     */
+    [[nodiscard]] const any &base() const noexcept {
+        return storage;
+    }
+
 private:
     any storage{};
     const meta_ctx *ctx{&locator<meta_ctx>::value_or()};

+ 7 - 7
test/entt/meta/meta_any.cpp

@@ -120,7 +120,7 @@ TEST_F(MetaAny, SBO) {
     entt::meta_any any{'c'};
 
     ASSERT_TRUE(any);
-    ASSERT_TRUE(any.owner());
+    ASSERT_TRUE(any.base().owner());
     ASSERT_EQ(any.policy(), entt::meta_any_policy::embedded);
     ASSERT_FALSE(any.try_cast<std::size_t>());
     ASSERT_EQ(any.cast<char>(), 'c');
@@ -134,7 +134,7 @@ TEST_F(MetaAny, NoSBO) {
     entt::meta_any any{instance};
 
     ASSERT_TRUE(any);
-    ASSERT_TRUE(any.owner());
+    ASSERT_TRUE(any.base().owner());
     ASSERT_EQ(any.policy(), entt::meta_any_policy::dynamic);
     ASSERT_FALSE(any.try_cast<std::size_t>());
     ASSERT_EQ(any.cast<fat>(), instance);
@@ -180,7 +180,7 @@ TEST_F(MetaAny, SBOAsRefConstruction) {
     auto any = entt::forward_as_meta(value);
 
     ASSERT_TRUE(any);
-    ASSERT_FALSE(any.owner());
+    ASSERT_FALSE(any.base().owner());
     ASSERT_EQ(any.policy(), entt::meta_any_policy::ref);
     ASSERT_EQ(any.type(), entt::resolve<int>());
 
@@ -217,7 +217,7 @@ TEST_F(MetaAny, SBOAsConstRefConstruction) {
     auto any = entt::forward_as_meta(value);
 
     ASSERT_TRUE(any);
-    ASSERT_FALSE(any.owner());
+    ASSERT_FALSE(any.base().owner());
     ASSERT_EQ(any.policy(), entt::meta_any_policy::cref);
     ASSERT_EQ(any.type(), entt::resolve<int>());
 
@@ -473,7 +473,7 @@ TEST_F(MetaAny, NoSBOAsRefConstruction) {
     auto any = entt::forward_as_meta(instance);
 
     ASSERT_TRUE(any);
-    ASSERT_FALSE(any.owner());
+    ASSERT_FALSE(any.base().owner());
     ASSERT_EQ(any.policy(), entt::meta_any_policy::ref);
     ASSERT_EQ(any.type(), entt::resolve<fat>());
 
@@ -508,7 +508,7 @@ TEST_F(MetaAny, NoSBOAsConstRefConstruction) {
     auto any = entt::forward_as_meta(instance);
 
     ASSERT_TRUE(any);
-    ASSERT_FALSE(any.owner());
+    ASSERT_FALSE(any.base().owner());
     ASSERT_EQ(any.policy(), entt::meta_any_policy::cref);
     ASSERT_EQ(any.type(), entt::resolve<fat>());
 
@@ -771,7 +771,7 @@ TEST_F(MetaAny, VoidInPlaceTypeConstruction) {
     entt::meta_any any{std::in_place_type<void>};
 
     ASSERT_TRUE(any);
-    ASSERT_FALSE(any.owner());
+    ASSERT_FALSE(any.base().owner());
     ASSERT_EQ(any.policy(), entt::meta_any_policy::empty);
     ASSERT_FALSE(any.try_cast<char>());
     ASSERT_EQ(any.data(), nullptr);