aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cores/arduino/WString.cpp7
-rw-r--r--cores/arduino/WString.h3
2 files changed, 10 insertions, 0 deletions
diff --git a/cores/arduino/WString.cpp b/cores/arduino/WString.cpp
index 5dcf585..41c80e8 100644
--- a/cores/arduino/WString.cpp
+++ b/cores/arduino/WString.cpp
@@ -157,6 +157,7 @@ String & String::copy(const char *cstr, unsigned int length)
return *this;
}
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
void String::move(String &rhs)
{
if (buffer) {
@@ -176,6 +177,7 @@ void String::move(String &rhs)
rhs.capacity = 0;
rhs.len = 0;
}
+#endif
String & String::operator = (const String &rhs)
{
@@ -340,6 +342,11 @@ StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num)
/* Comparison */
/*********************************************/
+String::operator bool() const
+{
+ return !!buffer;
+}
+
int String::compareTo(const String &s) const
{
if (!buffer || !s.buffer) {
diff --git a/cores/arduino/WString.h b/cores/arduino/WString.h
index f797861..5e78ee5 100644
--- a/cores/arduino/WString.h
+++ b/cores/arduino/WString.h
@@ -63,7 +63,9 @@ public:
// copy and move
String & copy(const char *cstr, unsigned int length);
+ #ifdef __GXX_EXPERIMENTAL_CXX0X__
void move(String &rhs);
+ #endif
String & operator = (const String &rhs);
String & operator = (const char *cstr);
#ifdef __GXX_EXPERIMENTAL_CXX0X__
@@ -101,6 +103,7 @@ public:
friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num);
// comparison
+ operator bool() const;
int compareTo(const String &s) const;
unsigned char equals(const String &s) const;
unsigned char equals(const char *cstr) const;