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

meta_handle: deleted copy constructor (close #661)

Michele Caini 5 лет назад
Родитель
Сommit
4e631f1536
2 измененных файлов с 20 добавлено и 1 удалено
  1. 19 0
      src/entt/meta/meta.hpp
  2. 1 1
      test/entt/meta/meta_handle.cpp

+ 19 - 0
src/entt/meta/meta.hpp

@@ -573,6 +573,25 @@ struct meta_handle {
     /*! @brief Default constructor. */
     meta_handle() = default;
 
+
+    /*! @brief Default copy constructor, deleted on purpose. */
+    meta_handle(const meta_handle &) = delete;
+
+    /*! @brief Default move constructor. */
+    meta_handle(meta_handle &&) = default;
+
+    /**
+     * @brief Default copy assignment operator, deleted on purpose.
+     * @return This meta handle.
+     */
+    meta_handle & operator=(const meta_handle &) = delete;
+
+    /**
+     * @brief Default move assignment operator.
+     * @return This meta handle.
+     */
+    meta_handle & operator=(meta_handle &&) = default;
+
     /**
      * @brief Creates a handle that points to an unmanaged object.
      * @tparam Type Type of object to use to initialize the handle.

+ 1 - 1
test/entt/meta/meta_handle.cpp

@@ -7,7 +7,7 @@
 struct clazz_t {
     void incr() { ++value; }
     void decr() { --value; }
-    int value;
+    int value{};
 };
 
 struct MetaHandle: ::testing::Test {