浏览代码

Merge pull request #100483 from Ivorforce/string-name-move-semantics

Add move semantics (constructor, assignment) to `StringName`.
Thaddeus Crews 8 月之前
父节点
当前提交
a94b559f9b
共有 1 个文件被更改,包括 14 次插入0 次删除
  1. 14 0
      core/string/string_name.h

+ 14 - 0
core/string/string_name.h

@@ -188,8 +188,22 @@ public:
 	};
 
 	StringName &operator=(const StringName &p_name);
+	StringName &operator=(StringName &&p_name) {
+		if (_data == p_name._data) {
+			return *this;
+		}
+
+		unref();
+		_data = p_name._data;
+		p_name._data = nullptr;
+		return *this;
+	}
 	StringName(const char *p_name, bool p_static = false);
 	StringName(const StringName &p_name);
+	StringName(StringName &&p_name) {
+		_data = p_name._data;
+		p_name._data = nullptr;
+	}
 	StringName(const String &p_name, bool p_static = false);
 	StringName(const StaticCString &p_static_string, bool p_static = false);
 	StringName() {}