我一直在编写用 C++ 编写的 ns3 网络模拟器。有很多函数可以有条件地记录输出,具体取决于系统的配置方式。(即记录消息的语句始终存在,但如果我关闭调试,则某些消息将不会出现)。
调用这些函数之一可能如下所示:
int n=42;
NS_LOG_LOGIC("the answer is " << n);
这非常有用,因为它允许我直接将许多不同类型的数据连接到一个要记录的字符串中。
现在,我正在尝试编写自己的日志记录功能,以允许我更好地控制记录消息的位置,并允许我在每条消息之前插入唯一的 id 和时间戳,以便我知道它的来源和时间。
我的问题是——如何在 c++ 中创建一个可以以这种方式调用的函数?我找不到所示函数的来源,也没有看到任何其他类似函数的示例。
注意 - 常规的“+”连接不够好,因为我希望能够轻松连接一堆不同的数据类型。我知道还有其他方法可以做到这一点,但我也只是想弄清楚上面的函数中发生了什么!
谢谢 :)