diff --git a/lib/base/string.cpp b/lib/base/string.cpp index 2806902ac..fa5027fb3 100644 --- a/lib/base/string.cpp +++ b/lib/base/string.cpp @@ -333,11 +333,21 @@ String icinga::operator+(const String& lhs, const char *rhs) return lhs.GetData() + rhs; } +String icinga::operator+(String&& lhs, const char *rhs) +{ + return std::move(lhs.GetData()) + rhs; +} + String icinga::operator+(const char *lhs, const String& rhs) { return lhs + rhs.GetData(); } +String icinga::operator+(const char *lhs, String&& rhs) +{ + return lhs + std::move(rhs.GetData()); +} + bool icinga::operator==(const String& lhs, const String& rhs) { return lhs.GetData() == rhs.GetData(); diff --git a/lib/base/string.hpp b/lib/base/string.hpp index 896c74d0b..0169a5e60 100644 --- a/lib/base/string.hpp +++ b/lib/base/string.hpp @@ -144,7 +144,9 @@ std::istream& operator>>(std::istream& stream, String& str); String operator+(const String& lhs, const String& rhs); String operator+(const String& lhs, const char *rhs); +String operator+(String&& lhs, const char *rhs); String operator+(const char *lhs, const String& rhs); +String operator+(const char *lhs, String&& rhs); bool operator==(const String& lhs, const String& rhs); bool operator==(const String& lhs, const char *rhs);