diff options
author | Mathias Stearn <redbeard0531@gmail.com> | 2022-03-16 11:04:03 +0100 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-03-18 16:21:43 +0000 |
commit | ff9ab764ccd4249dc929858a02d88a0e1cac16fd (patch) | |
tree | 8e53f55843b82d6618289b39d05e48f9ecbecf82 | |
parent | 9c83f3aabd24f31a9a6bf42b979483a7b18ffddc (diff) | |
download | mongo-ff9ab764ccd4249dc929858a02d88a0e1cac16fd.tar.gz |
SERVER-54352 std::string += StringData
-rw-r--r-- | src/mongo/base/string_data.h | 6 | ||||
-rw-r--r-- | src/mongo/base/string_data_test.cpp | 7 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/mongo/base/string_data.h b/src/mongo/base/string_data.h index 10c6758689e..c040c98cfb5 100644 --- a/src/mongo/base/string_data.h +++ b/src/mongo/base/string_data.h @@ -321,6 +321,12 @@ inline bool StringData::endsWith(StringData suffix) const { return substr(thisSize - suffixSize) == suffix; } +inline std::string& operator+=(std::string& lhs, StringData rhs) { + if (!rhs.empty()) + lhs.append(rhs.rawData(), rhs.size()); + return lhs; +} + inline std::string operator+(std::string lhs, StringData rhs) { if (!rhs.empty()) lhs.append(rhs.rawData(), rhs.size()); diff --git a/src/mongo/base/string_data_test.cpp b/src/mongo/base/string_data_test.cpp index c31d376c5b4..a809ddf8f95 100644 --- a/src/mongo/base/string_data_test.cpp +++ b/src/mongo/base/string_data_test.cpp @@ -448,5 +448,12 @@ TEST(Ostream, StringDataMatchesStdString) { } } +TEST(StringData, PlusEq) { + auto str = std::string("hello "); + auto& ret = str += "world"_sd; + ASSERT_EQ(str, "hello world"); + ASSERT_EQ(&ret, &str); +} + } // namespace } // namespace mongo |