1
0
Fork 0

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

Add move semantics (constructor, assignment) to `StringName`.
This commit is contained in:
Thaddeus Crews 2024-12-19 19:59:34 -06:00
commit a94b559f9b
No known key found for this signature in database
GPG Key ID: 62181B86FE9E5D84
1 changed files with 14 additions and 0 deletions

View File

@ -188,8 +188,22 @@ public:
}; };
StringName &operator=(const StringName &p_name); 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 char *p_name, bool p_static = false);
StringName(const StringName &p_name); 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 String &p_name, bool p_static = false);
StringName(const StaticCString &p_static_string, bool p_static = false); StringName(const StaticCString &p_static_string, bool p_static = false);
StringName() {} StringName() {}