@@ -87,25 +87,42 @@ class String
87
87
String & operator = (StringSumHelper &&rval);
88
88
#endif
89
89
90
- // concat
90
+ // concatenate (works w/ built-in types)
91
+
91
92
// returns true on success, false on failure (in which case, the string
92
93
// is left unchanged). if the argument is null or invalid, the
93
94
// concatenation is considered unsucessful.
94
95
unsigned char concat (const String &str);
95
96
unsigned char concat (const char *cstr);
97
+ unsigned char concat (char c);
98
+ unsigned char concat (unsigned char c);
99
+ unsigned char concat (int num);
100
+ unsigned char concat (unsigned int num);
101
+ unsigned char concat (long num);
102
+ unsigned char concat (unsigned long num);
96
103
97
104
// if there's not enough memory for the concatenated value, the string
98
105
// will be left unchanged (but this isn't signalled in any way)
99
106
String & operator += (const String &rhs) {concat (rhs); return (*this );}
100
107
String & operator += (const char *cstr) {concat (cstr); return (*this );}
108
+ String & operator += (char c) {concat (c); return (*this );}
109
+ String & operator += (unsigned char num) {concat (num); return (*this );}
110
+ String & operator += (int num) {concat (num); return (*this );}
111
+ String & operator += (unsigned int num) {concat (num); return (*this );}
112
+ String & operator += (long num) {concat (num); return (*this );}
113
+ String & operator += (unsigned long num) {concat (num); return (*this );}
101
114
102
- // concatenate
103
115
friend StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs);
104
116
friend StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr);
105
-
106
- // comparison
117
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, char c);
118
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num);
119
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, int num);
120
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num);
121
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, long num);
122
+ friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num);
123
+
124
+ // comparison (only works w/ Strings and "strings")
107
125
operator StringIfHelperType () const { return buffer ? &String::StringIfHelper : 0 ; }
108
-
109
126
int compareTo (const String &s) const ;
110
127
unsigned char equals (const String &s) const ;
111
128
unsigned char equals (const char *cstr) const ;
@@ -176,6 +193,12 @@ class StringSumHelper : public String
176
193
public:
177
194
StringSumHelper (const String &s) : String(s) {}
178
195
StringSumHelper (const char *p) : String(p) {}
196
+ StringSumHelper (char c) : String(c) {}
197
+ StringSumHelper (unsigned char num) : String(num) {}
198
+ StringSumHelper (int num) : String(num) {}
199
+ StringSumHelper (unsigned int num) : String(num) {}
200
+ StringSumHelper (long num) : String(num) {}
201
+ StringSumHelper (unsigned long num) : String(num) {}
179
202
};
180
203
181
204
#endif // __cplusplus
0 commit comments