- 1
- 2
- 3
- 4
- 5
- 6
- 7
string& operator+= (string const& str)
{
if(const size_t str_size = str.size())
_c_str = (char*)memcpy((char*)realloc(_c_str, _size+str_size+1)+_size, str.c_str(), str_size+1)-_size, //0_o
_size += str_size;
return *this;
}
А на out of memory пофиг как всегда.
Upd: пардон, понял о чем)
Ладно, сойдемся на том, что мне больше импонирует эстетика минимализма:)
Упс, я плохо просмотрел код. Согласен с вами, str_size тут не нужен. Разрешаю вам минуснуть мой предыдущий пост :)
А что вернёт realloc, вслучае если ей не удалось расширеть буфер, например не хватило памяти?
hint: man 3 realloc
Что это значит? Что только три раза можно реалочить? O_o
<http://en.wikipedia.org/wiki/Man_pages>
string a = "bla-bla-bla";
a+=a;
string a = "blя-blя-blя";
a+=a;