相关疑难解决方法(0)

实现no-op std :: ostream

我正在寻找一个日志类,其中包含Info,Error等成员,可以配置输出到控制台,文件或无处.

为了提高效率,我希望避免格式化将要丢弃的消息的开销(即,不以详细模式运行时的信息消息).如果我实现一个输出到无处的自定义std :: streambuf,我想std :: ostream层仍将执行所有格式化.任何人都可以建议一种方法来拥有一个真正的"空"std :: ostream,它可以避免在传递给它的参数上做任何工作<<吗?

谢谢.

c++ debugging logging

32
推荐指数
3
解决办法
7782
查看次数

与c ++无关的平台/ dev/null

可能重复:
实现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)

c++ stream ostream default-parameters

21
推荐指数
1
解决办法
7656
查看次数

标签 统计

c++ ×2

debugging ×1

default-parameters ×1

logging ×1

ostream ×1

stream ×1