私は c++ で書かれた ns3 ネットワーク シミュレーターをプログラミングしています。システムの構成方法に応じて、条件付きで出力をログに記録するための関数が多数あります。(つまり、メッセージをログに記録するステートメントは常に存在しますが、デバッグをオフにすると、いくつかのメッセージが出てこなくなります)。
これらの関数のいずれかを呼び出すと、次のようになります。
int n=42;
NS_LOG_LOGIC("the answer is " << n);
これは、さまざまな種類のデータを 1 つの文字列に直接連結してログに記録できるため、非常に便利です。
現在、メッセージがログに記録される場所をより詳細に制御し、すべてのメッセージの前に一意の ID とタイムスタンプを挿入できるようにするために、独自のログ機能を作成しようとしています。
私の質問はこれです - この方法で呼び出すことができる関数を c++ で作成するにはどうすればよいですか? 表示されている関数のソースが見つからず、このような関数の他の例を見たことがありません。
注 - 多数の異なるデータ型を簡単に連結できるようにしたいので、通常の「+」連結では十分ではありません。私はそれを行う他の方法があることを知っていますが、上記の関数で何が起こっているのかを理解したいだけです!
ありがとうございました :)