C++ では、次の形式のシーケンスの終わりをプログラムでどのように検出しますか。
object << argument1 << argument2 << argument3;
このように operator<< をオーバーロードしたとしましょう
Object& operator<<(Object& object, Argument& argument) {
...
}
上記の式は次のように評価されます。
(((object << argument1) << argument2) << argument3);
議論のために、オブジェクトがロガーであるとしましょう。データをロガーにストリーミングします。最後の引数 (この場合は引数 3 ですが、もちろん引数の数は固定されていません) がオブジェクトにストリーミングされたら、オブジェクトにメッセージを組み立てて投稿してもらいます。次のようなものを書かなくても、どうすればこれを行うことができますか:
object << argument1 << argument2 << argument3 << EOM;
ありがとうございました。任意の入力を歓迎します。