aboutsummaryrefslogtreecommitdiff
path: root/system/include/libcxx/ios
diff options
context:
space:
mode:
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