我正在寻找一个日志类,其中包含Info,Error等成员,可以配置输出到控制台,文件或无处.
为了提高效率,我希望避免格式化将要丢弃的消息的开销(即,不以详细模式运行时的信息消息).如果我实现一个输出到无处的自定义std :: streambuf,我想std :: ostream层仍将执行所有格式化.任何人都可以建议一种方法来拥有一个真正的"空"std :: ostream,它可以避免在传递给它的参数上做任何工作<<吗?
谢谢.
可能重复:
实现no-op std :: ostream
在c ++中是否有任何与NULL等效的流?我想编写一个函数,如果用户希望将内部输出到某个地方,则会接收流,但如果没有,则输出进入某个假的地方
void data(std::stream & stream = fake_stream){
stream << "DATA" ;
}
Run Code Online (Sandbox Code Playgroud)
我希望能够选择做data()或data(std::cout)