summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/core/String.hpp2
-rw-r--r--src/core/String.cpp9
2 files changed, 11 insertions, 0 deletions
diff --git a/include/core/String.hpp b/include/core/String.hpp
index 7c11ac7..2dea845 100644
--- a/include/core/String.hpp
+++ b/include/core/String.hpp
@@ -40,6 +40,7 @@ public:
String(const wchar_t *contents);
String(const wchar_t c);
String(const String &other);
+ String(String &&other);
~String();
@@ -55,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 c1efee5..7564572 100644
--- a/src/core/String.cpp
+++ b/src/core/String.cpp
@@ -73,6 +73,10 @@ String::String(const String &other) {
godot::api->godot_string_new_copy(&_godot_string, &other._godot_string);
}
+String::String(String &&other) {
+ godot::api->godot_string_new_copy(&_godot_string, &other._godot_string);
+}
+
String::~String() {
godot::api->godot_string_destroy(&_godot_string);
}
@@ -94,6 +98,11 @@ 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);
+}
+
bool String::operator==(const String &s) const {
return godot::api->godot_string_operator_equal(&_godot_string, &s._godot_string);
}