std::basic_ostringstream

typedef unsigned short ushort;
std::basic_ostringstream obuf;
obuf << ushort(1111);
obuf.str().size();

こんなコードを g++*1コンパイルすると、obuf.str().size() が 0 を返す。なんでだ・・・
VC8 でコンパイルすると 4 を返す。1 じゃないのが微妙にアレだが char_traits をちゃんと定義すればよさそうな予感。
0 を返す g++(stdc++ か?)はどうしてくれよう。

*1:3.4, 4.0 4.1 4.2 で確認