C++ 暂时隐藏流格式的最简洁、最健壮的方法?
我厌倦了样板文件和繁琐的恢复格式上下文,所以我制作了一个rai stasher,它依赖于完整语句末尾的destroy临时语义。使用C++17,我可以将其简化为单一类型,无需帮助:C++ 暂时隐藏流格式的最简洁、最健壮的方法?,c++,C++,我厌倦了样板文件和繁琐的恢复格式上下文,所以我制作了一个rai stasher,它依赖于完整语句末尾的destroy临时语义。使用C++17,我可以将其简化为单一类型,无需帮助: #包括 模板 结构fmtstash{ typedef streamtmp streamtype; streamtype&from; std::ios_base::fmtflags标志; 标准:流尺寸宽度; 标准:流尺寸精度; fmtstash(流线型和str型): from(str)、flags(str.flags()
#包括
模板
结构fmtstash{
typedef streamtmp streamtype;
streamtype&from;
std::ios_base::fmtflags标志;
标准:流尺寸宽度;
标准:流尺寸精度;
fmtstash(流线型和str型):
from(str)、flags(str.flags())、width(str.width())、precision(str.precision()){}
~fmtstash(){from.flags(flags)、from.width(width)、from.precision(precision);}
模板流类型和运算符(rhs);}
};
int main(int c,字符**v)
{
使用名称空间std;
fmtstash(cout)如果这段代码是功能性的,但你需要评论,那么这就是地方。@StoryTeller UnslanderMonica对。它有效,这是“使用、改进、废弃”问题。我会问的。这差不多是你能做的了。不要使用以下划线开头,后跟大写字母的标识符。这些标识符在所有上下文中都保留给编译器/标准库。只需废弃iostreams。std::format
即将推出。