热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何自动将流模式设置回默认值

如何解决《如何自动将流模式设置回默认值》经验,请帮忙看看怎么搞?

C++ steam对象具有状态.如果一个人写一段代码就好

using namespace std; 
cout <

忘记设置流状态.这将导致其他一些不相关的代码出现问题.进行"设置"和"后退"对匹配是很繁琐的.除此之外,在我看来,这也违背了RAII背后的惯例.

我的问题是:只有一层薄薄的包裹才有可能使这些状态操作成为类RAII.也就是说,在分号表达式结束后,流状态会自动设置回默认值.

更新:按照@ 0x499602D2提供的链接,可能会有一个解决方法

#include 
#include 
#include 
#include 
#define AUTO_COUT(x) {\
    boost::io::ios_all_saver  ias( cout );\
    x;\
    }while(0)

然后就可以使用宏了

AUTO_COUT(cout <

顺便说一下,如果在多线程程序中出现有趣的事情,最好为那些保护类的boost :: io :: ios_state添加一个锁定字段.或者他们已经这样做了?


推荐阅读
author-avatar
爱你想你疼你吻你_514
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有