Skip to content

Commit acb9b49

Browse files
committed
fixup extern operator+ dependency on insert
1 parent 4ad1080 commit acb9b49

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

cores/esp8266/WString.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -509,6 +509,8 @@ inline String operator +(char lhs, String &&rhs) {
509509
return std::move(rhs.insert(0, lhs));
510510
}
511511

512+
// Similarly, allow c-strings and `F(...)` as both lhs and rhs
513+
512514
String operator +(const char *lhs, const String &rhs);
513515

514516
inline String operator +(const char *lhs, String &&rhs) {
@@ -520,7 +522,7 @@ inline String operator +(const __FlashStringHelper *lhs, const String &rhs) {
520522
}
521523

522524
inline String operator +(const __FlashStringHelper *lhs, String &&rhs) {
523-
return std::move(rhs.insert(0, reinterpret_cast<const char *>(lhs)));
525+
return reinterpret_cast<const char *>(lhs) + std::move(rhs);
524526
}
525527

526528
extern const String emptyString;

tests/host/core/test_string.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -600,7 +600,8 @@ TEST_CASE("String chaining", "[core][String]")
600600
String tmp(chunks[3]);
601601
tmp.reserve(2 * all.length());
602602
auto* ptr = tmp.c_str();
603-
String result("~1" + String(&chunks[0][0] + 2) + FPSTR(chunks[1]) + chunks[2] + std::move(tmp));
603+
String result("~1" + String(&chunks[0][0] + 2) + FPSTR(chunks[1]) + chunks[2]
604+
+ std::move(tmp));
604605
REQUIRE(result == all);
605606
REQUIRE(static_cast<const void*>(result.c_str()) == static_cast<const void*>(ptr));
606607
}

0 commit comments

Comments
 (0)