summaryrefslogtreecommitdiff
path: root/system/include/libcxx/ios
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-08-15 16:51:29 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-08-15 16:51:29 -0700
commit41e7af7eeb7f0d0a3991abd7ff87177308570c54 (patch)
tree3c0684b6549c0e186032ca38252bc40fc4657273 /system/include/libcxx/ios
parentb1eaf55eefb815e8f3556b59ce64e6d1e0f55d55 (diff)
parent2e229a560955c07d1b66db27913af3284baa64fb (diff)
Merge branch 'incoming'
Diffstat (limited to 'system/include/libcxx/ios')
-rw-r--r--system/include/libcxx/ios27
1 files changed, 27 insertions, 0 deletions
diff --git a/system/include/libcxx/ios b/system/include/libcxx/ios
index 25bbfc0b..c10003d0 100644
--- a/system/include/libcxx/ios
+++ b/system/include/libcxx/ios
@@ -983,6 +983,33 @@ defaultfloat(ios_base& __str)
return __str;
}
+template <class _CharT, class _Traits>
+class __save_flags
+{
+ typedef basic_ios<_CharT, _Traits> __stream_type;
+ typedef typename __stream_type::fmtflags fmtflags;
+
+ __stream_type& __stream_;
+ fmtflags __fmtflags_;
+ _CharT __fill_;
+
+ __save_flags(const __save_flags&);
+ __save_flags& operator=(const __save_flags&);
+public:
+ _LIBCPP_INLINE_VISIBILITY
+ explicit __save_flags(__stream_type& __stream)
+ : __stream_(__stream),
+ __fmtflags_(__stream.flags()),
+ __fill_(__stream.fill())
+ {}
+ _LIBCPP_INLINE_VISIBILITY
+ ~__save_flags()
+ {
+ __stream_.flags(__fmtflags_);
+ __stream_.fill(__fill_);
+ }
+};
+
_LIBCPP_END_NAMESPACE_STD
#endif // _LIBCPP_IOS