車輪の再発明

[再発明] デバッガへの送信ストリーム

Windows 環境では、いわゆる printf デバッグを行うために OutputDebugString API を使用することがよくあります。この API は非常に単純で、使い勝手もそう悪くはありませんが、トレース情報の出力先をデバッガやらファイルやら標準出力やらに切り替えたいときには、FILE 型や std::ostream と交換できないためにやや面倒なこともあります。

そこで誰もが考えるのが、std::streambuf を継承して、OutputDebugString を用いて出力を行うクラスを作る、ないしはそのクラスを用いて std::ostream を継承したクラスを作るということです。そこで、今回は当サイトでも同じことを試みてみました。ただし、ほかでやっているのは std::streambuf::overflow をオーバーライドする実装が多いようですので、当サイトでは std::streambuf::xsputn をオーバーライドすることにしてみました。

車輪の再発明

ここでは、すでに優れたものが既に存在しているけれども、あえてそれに代わるものを作ってみたいと思います。真似をする過程で、筆者または読者にとって、何か得るものがあればそれに越したことはありませんし、そうでなくても、先人の作ったもののすばらしさを再認識することぐらいはできるはずです。

コンテンツ配信
このエントリーを含むはてなブックマーク