Browse Source

meta: minor changes

Michele Caini 5 years ago
parent
commit
032bcd9fbe
2 changed files with 11 additions and 31 deletions
  1. 0 5
      src/entt/meta/internal.hpp
  2. 11 26
      src/entt/meta/meta.hpp

+ 0 - 5
src/entt/meta/internal.hpp

@@ -135,11 +135,6 @@ public:
         }
         }
     }
     }
 
 
-    template<typename Type>
-    meta_storage & operator=(Type &&value) {
-        return (*this = meta_storage{std::forward<Type>(value)});
-    }
-
     meta_storage & operator=(meta_storage other) {
     meta_storage & operator=(meta_storage other) {
         swap(other, *this);
         swap(other, *this);
         return *this;
         return *this;

+ 11 - 26
src/entt/meta/meta.hpp

@@ -31,13 +31,13 @@ class meta_container {
     struct meta_iterator;
     struct meta_iterator;
 
 
     struct meta_view {
     struct meta_view {
-        [[nodiscard]] virtual std::size_t size(void *) const ENTT_NOEXCEPT = 0;
+        [[nodiscard]] virtual std::size_t size(const void *) const ENTT_NOEXCEPT = 0;
         [[nodiscard]] virtual bool insert(void *, meta_any, meta_any) = 0;
         [[nodiscard]] virtual bool insert(void *, meta_any, meta_any) = 0;
         [[nodiscard]] virtual bool erase(void *, meta_any) = 0;
         [[nodiscard]] virtual bool erase(void *, meta_any) = 0;
         [[nodiscard]] virtual meta_any begin(void *) const ENTT_NOEXCEPT = 0;
         [[nodiscard]] virtual meta_any begin(void *) const ENTT_NOEXCEPT = 0;
         [[nodiscard]] virtual meta_any end(void *) const ENTT_NOEXCEPT = 0;
         [[nodiscard]] virtual meta_any end(void *) const ENTT_NOEXCEPT = 0;
         [[nodiscard]] virtual meta_any find(void *, meta_any) const ENTT_NOEXCEPT = 0;
         [[nodiscard]] virtual meta_any find(void *, meta_any) const ENTT_NOEXCEPT = 0;
-        [[nodiscard]] virtual meta_any value(meta_any) const ENTT_NOEXCEPT = 0;
+        [[nodiscard]] virtual meta_any dereference(meta_any) const ENTT_NOEXCEPT = 0;
         virtual void incr(meta_any) const ENTT_NOEXCEPT = 0;
         virtual void incr(meta_any) const ENTT_NOEXCEPT = 0;
     };
     };
 
 
@@ -93,8 +93,8 @@ class meta_any {
             return &common;
             return &common;
         }
         }
 
 
-        [[nodiscard]] std::size_t size(void *container) const ENTT_NOEXCEPT override {
-            return static_cast<Type *>(container)->size();
+        [[nodiscard]] std::size_t size(const void *container) const ENTT_NOEXCEPT override {
+            return static_cast<const Type *>(container)->size();
         }
         }
 
 
         [[nodiscard]] bool insert(void *container, meta_any it, meta_any value) override {
         [[nodiscard]] bool insert(void *container, meta_any it, meta_any value) override {
@@ -133,7 +133,7 @@ class meta_any {
             return static_cast<Type *>(container)->end();
             return static_cast<Type *>(container)->end();
         }
         }
 
 
-        [[nodiscard]] meta_any value(meta_any it) const ENTT_NOEXCEPT override {
+        [[nodiscard]] meta_any dereference(meta_any it) const ENTT_NOEXCEPT override {
             return std::ref(*it.cast<typename Type::iterator>());
             return std::ref(*it.cast<typename Type::iterator>());
         }
         }
 
 
@@ -159,8 +159,8 @@ class meta_any {
             return &common;
             return &common;
         }
         }
 
 
-        [[nodiscard]] std::size_t size(void *container) const ENTT_NOEXCEPT override {
-            return static_cast<Type *>(container)->size();
+        [[nodiscard]] std::size_t size(const void *container) const ENTT_NOEXCEPT override {
+            return static_cast<const Type *>(container)->size();
         }
         }
 
 
         [[nodiscard]] bool insert(void *container, meta_any key, meta_any value) override {
         [[nodiscard]] bool insert(void *container, meta_any key, meta_any value) override {
@@ -202,7 +202,7 @@ class meta_any {
             return static_cast<Type *>(container)->end();
             return static_cast<Type *>(container)->end();
         }
         }
 
 
-        [[nodiscard]] meta_any value(meta_any it) const ENTT_NOEXCEPT override {
+        [[nodiscard]] meta_any dereference(meta_any it) const ENTT_NOEXCEPT override {
             if constexpr(is_key_only_associative_container_v<Type>) {
             if constexpr(is_key_only_associative_container_v<Type>) {
                 return *it.cast<typename Type::iterator>();
                 return *it.cast<typename Type::iterator>();
             } else {
             } else {
@@ -279,11 +279,7 @@ public:
      * @brief Copy constructor.
      * @brief Copy constructor.
      * @param other The instance to copy from.
      * @param other The instance to copy from.
      */
      */
-    meta_any(const meta_any &other)
-        : storage{other.storage},
-          node{other.node},
-          cview{other.cview}
-    {}
+    meta_any(const meta_any &other) = default;
 
 
     /**
     /**
      * @brief Move constructor.
      * @brief Move constructor.
@@ -302,17 +298,6 @@ public:
         }
         }
     }
     }
 
 
-    /**
-     * @brief Assignment operator.
-     * @tparam Type Type of object to use to initialize the wrapper.
-     * @param value An instance of an object to use to initialize the wrapper.
-     * @return This meta any object.
-     */
-    template<typename Type>
-    meta_any & operator=(Type &&value) {
-        return (*this = meta_any{std::forward<Type>(value)});
-    }
-
     /**
     /**
      * @brief Assignment operator.
      * @brief Assignment operator.
      * @param other The instance to assign from.
      * @param other The instance to assign from.
@@ -443,7 +428,7 @@ public:
      */
      */
     template<typename Type, typename... Args>
     template<typename Type, typename... Args>
     void emplace(Args &&... args) {
     void emplace(Args &&... args) {
-        *this = meta_any{std::in_place_type_t<Type>{}, std::forward<Args>(args)...};
+        *this = meta_any{std::in_place_type<Type>, std::forward<Args>(args)...};
     }
     }
 
 
     /**
     /**
@@ -582,7 +567,7 @@ struct meta_container::meta_iterator {
      * @return The element to which the meta pointer points.
      * @return The element to which the meta pointer points.
      */
      */
     [[nodiscard]] reference operator*() const {
     [[nodiscard]] reference operator*() const {
-        return view->value(handle());
+        return view->dereference(handle());
     }
     }
 
 
     /**
     /**