ファイルとストリーム用の社内フレームワークがあるとしましょう。と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はタイタルとどのように関係していますか?