summaryrefslogtreecommitdiff
path: root/system/include/libcxx/ios
diff options
context:
space:
mode:
authorJames Gregory <james@james.id.au>2013-08-19 14:01:32 -0700
committerJames Gregory <james@james.id.au>2013-08-19 14:01:32 -0700
commitafcdfff09f8557ce6810546628733f48d6c45408 (patch)
tree9c556c29a0556429dc1b421b2d5abade1915a034 /system/include/libcxx/ios
parent46c82708d50e839945fa24094fe352241be6a22e (diff)
parentcd38275faf739ba151c0aa7abe13703c9b8d8235 (diff)
Merge remote-tracking branch 'origin/incoming' into touch_handling
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