gpt4 book ai didi

使用 ostream 的 C++ 日志记录

转载 作者:太空宇宙 更新时间:2023-11-04 14:50:39 25 4
gpt4 key购买 nike

我正在制作一个记录器。我想创建一个函数 log()以流作为输入。

例如:

log("hello"<<" "<<"world"<<10<<"\n");

我也希望它是线程安全的。

我重新定义了 <<运算符(operator)所以我可以这样做:

log()<<"hello"<<"world"<<10<<"\n"

但是这个操作不是线程安全的。

如何让它成为线程安全的?

最佳答案

log() 返回一个临时对象,在内存中缓冲所有输出。该对象的析构函数将在表达式的末尾运行,并且应该在单个原子操作中将累积的数据刷新到实际流中(由您决定是否使该操作成为原子操作)。

这将使您的第二个语法可行:

log()<<"hello"<<"world"<<10<<"\n";

关于使用 ostream 的 C++ 日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9297099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com