aboutsummaryrefslogtreecommitdiff
path: root/cores/arduino
diff options
context:
space:
mode:
authorDavid A. Mellis <d.mellis@arduino.cc>2011-03-13 19:31:10 -0400
committerDavid A. Mellis <d.mellis@arduino.cc>2011-03-13 19:31:10 -0400
commita5f6e6524282e23860ace324dcf81598287f9944 (patch)
tree6a5626d5bf8e5fc99f9e2ae21ee314f27d1d6447 /cores/arduino
parent76776e7a46b30ee84f48db146bf8dd642de2927a (diff)
Adding additional String + operators for disambiguation.
The operator bool() means that you could implicitly convert a String to a bool and then add it to it an int, for example. Which means our operator+ has to match exactly or it will be ambiguous.
Diffstat (limited to 'cores/arduino')
-rw-r--r--cores/arduino/WString.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/cores/arduino/WString.h b/cores/arduino/WString.h
index 5e78ee5..5a35101 100644
--- a/cores/arduino/WString.h
+++ b/cores/arduino/WString.h
@@ -175,5 +175,40 @@ public:
StringSumHelper(unsigned long num) : String(num, 10) {}
};
+inline StringSumHelper operator + (const String &lhs, const String &rhs)
+ { return StringSumHelper(lhs) + rhs; }
+
+inline StringSumHelper operator + (const String &lhs, const char *cstr)
+ { return StringSumHelper(lhs) + cstr; }
+inline StringSumHelper operator + (const String &lhs, char c)
+ { return StringSumHelper(lhs) + c; }
+inline StringSumHelper operator + (const String &lhs, unsigned char c)
+ { return StringSumHelper(lhs) + c; }
+inline StringSumHelper operator + (const String &lhs, int num)
+ { return StringSumHelper(lhs) + num; }
+inline StringSumHelper operator + (const String &lhs, unsigned int num)
+ { return StringSumHelper(lhs) + num; }
+inline StringSumHelper operator + (const String &lhs, long num)
+ { return StringSumHelper(lhs) + num; }
+inline StringSumHelper operator + (const String &lhs, unsigned long num)
+ { return StringSumHelper(lhs) + num; }
+
+inline StringSumHelper operator + (const char *cstr, const String &rhs)
+ { return StringSumHelper(cstr) + rhs; }
+inline StringSumHelper operator + (char c, const String &rhs)
+ { return StringSumHelper(c) + rhs; }
+inline StringSumHelper operator + (unsigned char c, const String &rhs)
+ { return StringSumHelper(c) + rhs; }
+inline StringSumHelper operator + (int num, const String &rhs)
+ { return StringSumHelper(num) + rhs; }
+inline StringSumHelper operator + (unsigned int num, const String &rhs)
+ { return StringSumHelper(num) + rhs; }
+inline StringSumHelper operator + (long num, const String &rhs)
+ { return StringSumHelper(num) + rhs; }
+inline StringSumHelper operator + (unsigned long num, const String &rhs)
+ { return StringSumHelper(num) + rhs; }
+
+
+
#endif // __cplusplus
#endif // String_class_h