std::stringbufの長さの伸び方
std::stringstreamを使う用事が出てきたのですが、メモリの確保の仕方はどうなってんのかなー、
と思ってソースを追っかけたら、std::basic_stringbuf::overflowの中がこんな感じになっていました。
(環境はVC2005です)
size_t _Inc = _Newsize / 2 < _MINSIZE ? _MINSIZE : _Newsize / 2; // grow by 50 per cent
2倍に確保ってよく聞くことが多いですが、これは1.5倍ってことですよねえ。
まあ実装によるんでしょうけど。ちなみに_MINSIZEは32だそうです。