我正在制作一个记录器。我想创建一个函数log()
以流作为输入。
例如:
log("hello"<<" "<<"world"<<10<<"\n");
我也希望它是线程安全的。
我重新定义了<<
运算符所以我可以这样做:
log()<<"hello"<<"world"<<10<<"\n"
但这个操作不是线程安全的。
我怎样才能使它线程安全?
Have log()
返回一个临时对象,该对象缓冲内存中的所有输出。该对象的析构函数将在表达式末尾运行,并且应该在单个原子操作中将累积的数据刷新到实际流(由您决定使该操作原子化)。
这将使你的第二种语法可行:
log()<<"hello"<<"world"<<10<<"\n";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)