Moving move() to __GXX_EXPERIMENTAL_CXX0X__ only, adding operator bool().

This commit is contained in:
David A. Mellis 2011-03-13 16:46:06 -04:00
parent f5f2e09636
commit cc24d41b74
2 changed files with 10 additions and 0 deletions

View File

@ -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) {

View File

@ -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;