ファイルとストリーム用の社内フレームワークがあるとしましょう。とIOutputStream
のインターフェイスクラスがwrite(char const *buffer, size_t size)
ありflush()
ます。私は、子孫Printer
の任意のインスタンスで使用できると呼ばれるツールを持っています。IOutputStream
次にPrinter & operator<<(T x)
、スタイルメソッドがあります。ここT x
で、は書き込まれるデータ(またはその参照またはポインター)です。
たとえば、文字列にPrinter & operator<<(int x)
変換x
され、参照された出力ストリームのwrite(...)
関数を実際に呼び出します。
問題を見てみましょう!呼び出し:printer << "appletree";
。と呼びますPrinter & operator<<(char const *s)
。この種の使用法ではstrlen(s)
、サイズを決定するためにを呼び出す必要があり、その後、最終ステップを呼び出すことができます。appletree
コンパイル時の長さを知っているので、これはかなり正気ではありません。
これについて何か良い習慣はありますか?STLostream
はタイタルとどのように関係していますか?