【发布时间】:2010-10-20 02:32:23
【问题描述】:
我正在考虑创建一个日志记录类,其中包含 Info、Error 等可以配置输出到控制台、文件或无处的成员。
为了提高效率,我想避免格式化将被丢弃的消息的开销(即不以详细模式运行时的信息消息)。如果我实现一个自定义的 std::streambuf 输出到任何地方,我想 std::ostream 层仍将执行所有格式化。任何人都可以提出一种方法来获得真正的“空”std::ostream,从而避免对使用<< 传递给它的参数做任何工作吗?
【问题讨论】:
-
我不会担心的。只需使用 neil 所示的空流。该类不需要任何更好的性能,因为显然如果您没有空目标,则必须进行格式化 ,因此这显然不是关键。只是我的 2 美分
-
嗯,但它看起来像是一个“调试输出”的东西?我见过的一种方式是这样的:out() f const& operator