私は最近、ストリームにアイテムが書き込まれるたびにios_base::width
および/またはsetw
マニピュレータをリセットする必要があるという事実に悩まされていました。
つまり、これを行う必要があります。
while(whatever)
{
mystream << std::setw(2) << myval;
}
これではなく:
mystream.width(2);
while(whatever)
{
mystream << myval;
}
いいよ。
しかし、この設計上の決定がなされた理由を誰か知っていますか? 私が見逃しているという根拠はありますか、それともこれは標準の暗い隅にすぎませんか?
他のストリーム フォーマット修飾子 (リンクされた SO の質問で言及されているように) は「スティッキー」ですが、そうでsetw
はありません。