まず、ostrstream が非推奨であることは知っていますが、この場合、ostringstream へのリファクタリングは実際にはオプションではありません。
現在、<<
操作後にストリームに不良ビットが設定されているかどうかを確認しているだけです。
例 (はい、非常に単純化されています):
char* buf = new char[10];
std::ostrstream tempOut(buf, 10);
tempOut << "To many charactors to fit in the buffer";
if (tempOut.bad()) {
// Do what needs to be done to allocate a bigger buf
}
悪い状態がオーバーフローによるものであり、他の問題ではないことを確認するより良い方法はありますか?