椿の日記

たぶんプログラムの話をします

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だそうです。