c4_String operator + (const c4_String &a, const c4_String &b) { const int aCnt = a.GetLength(); int sum = aCnt + b.GetLength(); c4_String result('\0', sum); // set up correct size, then fix contents memcpy(result._value + 2, a.Data(), aCnt); memcpy(result._value + 2+aCnt, b.Data(), sum - aCnt); return result; }
c4_String::c4_String (const c4_String& s) { if (fInc(s._value)) _value = s._value; else Init(s.Data(), s.GetLength()); }
bool operator == (const c4_String &a, const c4_String &b) { return a._value == b._value || a.GetLength() == b.GetLength() && memcmp (a.Data(), b.Data(), a.GetLength()) == 0; }