summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/core/String.hpp1
-rw-r--r--src/core/String.cpp6
2 files changed, 7 insertions, 0 deletions
diff --git a/include/core/String.hpp b/include/core/String.hpp
index 62b58e4..ae3dd89 100644
--- a/include/core/String.hpp
+++ b/include/core/String.hpp
@@ -56,6 +56,7 @@ public:
wchar_t operator[](const int idx) const;
void operator=(const String &s);
+ void operator=(String&& s);
bool operator==(const String &s) const;
bool operator!=(const String &s) const;
String operator+(const String &s) const;
diff --git a/src/core/String.cpp b/src/core/String.cpp
index 19e44f9..3414adf 100644
--- a/src/core/String.cpp
+++ b/src/core/String.cpp
@@ -99,6 +99,12 @@ void String::operator=(const String &s) {
godot::api->godot_string_new_copy(&_godot_string, &s._godot_string);
}
+void String::operator=(String&& s) {
+ godot::api->godot_string_destroy(&_godot_string);
+ godot::api->godot_string_new_copy(&_godot_string, &s._godot_string);
+ godot::api->godot_string_destroy(&s._godot_string);
+}
+
bool String::operator==(const String &s) const {
return godot::api->godot_string_operator_equal(&_godot_string, &s._godot_string);
}