37 #pragma GCC system_header 43 #if __cplusplus < 201103L 49 namespace std _GLIBCXX_VISIBILITY(default)
51 _GLIBCXX_BEGIN_NAMESPACE_VERSION
59 _S_boolalpha = 1L << 0,
63 _S_internal = 1L << 4,
67 _S_scientific = 1L << 8,
68 _S_showbase = 1L << 9,
69 _S_showpoint = 1L << 10,
70 _S_showpos = 1L << 11,
72 _S_unitbuf = 1L << 13,
73 _S_uppercase = 1L << 14,
74 _S_adjustfield = _S_left | _S_right | _S_internal,
75 _S_basefield = _S_dec | _S_oct | _S_hex,
76 _S_floatfield = _S_scientific | _S_fixed,
77 _S_ios_fmtflags_end = 1L << 16,
78 _S_ios_fmtflags_max = __INT_MAX__,
79 _S_ios_fmtflags_min = ~__INT_MAX__
82 inline _GLIBCXX_CONSTEXPR _Ios_Fmtflags
83 operator&(_Ios_Fmtflags __a, _Ios_Fmtflags __b)
84 {
return _Ios_Fmtflags(static_cast<int>(__a) & static_cast<int>(__b)); }
86 inline _GLIBCXX_CONSTEXPR _Ios_Fmtflags
87 operator|(_Ios_Fmtflags __a, _Ios_Fmtflags __b)
88 {
return _Ios_Fmtflags(static_cast<int>(__a) | static_cast<int>(__b)); }
90 inline _GLIBCXX_CONSTEXPR _Ios_Fmtflags
91 operator^(_Ios_Fmtflags __a, _Ios_Fmtflags __b)
92 {
return _Ios_Fmtflags(static_cast<int>(__a) ^ static_cast<int>(__b)); }
94 inline _GLIBCXX_CONSTEXPR _Ios_Fmtflags
95 operator~(_Ios_Fmtflags __a)
96 {
return _Ios_Fmtflags(~static_cast<int>(__a)); }
98 inline const _Ios_Fmtflags&
99 operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)
100 {
return __a = __a | __b; }
102 inline const _Ios_Fmtflags&
103 operator&=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)
104 {
return __a = __a & __b; }
106 inline const _Ios_Fmtflags&
107 operator^=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)
108 {
return __a = __a ^ __b; }
119 _S_ios_openmode_end = 1L << 16,
120 _S_ios_openmode_max = __INT_MAX__,
121 _S_ios_openmode_min = ~__INT_MAX__
124 inline _GLIBCXX_CONSTEXPR _Ios_Openmode
125 operator&(_Ios_Openmode __a, _Ios_Openmode __b)
126 {
return _Ios_Openmode(static_cast<int>(__a) & static_cast<int>(__b)); }
128 inline _GLIBCXX_CONSTEXPR _Ios_Openmode
129 operator|(_Ios_Openmode __a, _Ios_Openmode __b)
130 {
return _Ios_Openmode(static_cast<int>(__a) | static_cast<int>(__b)); }
132 inline _GLIBCXX_CONSTEXPR _Ios_Openmode
133 operator^(_Ios_Openmode __a, _Ios_Openmode __b)
134 {
return _Ios_Openmode(static_cast<int>(__a) ^ static_cast<int>(__b)); }
136 inline _GLIBCXX_CONSTEXPR _Ios_Openmode
137 operator~(_Ios_Openmode __a)
138 {
return _Ios_Openmode(~static_cast<int>(__a)); }
140 inline const _Ios_Openmode&
141 operator|=(_Ios_Openmode& __a, _Ios_Openmode __b)
142 {
return __a = __a | __b; }
144 inline const _Ios_Openmode&
145 operator&=(_Ios_Openmode& __a, _Ios_Openmode __b)
146 {
return __a = __a & __b; }
148 inline const _Ios_Openmode&
149 operator^=(_Ios_Openmode& __a, _Ios_Openmode __b)
150 {
return __a = __a ^ __b; }
158 _S_failbit = 1L << 2,
159 _S_ios_iostate_end = 1L << 16,
160 _S_ios_iostate_max = __INT_MAX__,
161 _S_ios_iostate_min = ~__INT_MAX__
164 inline _GLIBCXX_CONSTEXPR _Ios_Iostate
165 operator&(_Ios_Iostate __a, _Ios_Iostate __b)
166 {
return _Ios_Iostate(static_cast<int>(__a) & static_cast<int>(__b)); }
168 inline _GLIBCXX_CONSTEXPR _Ios_Iostate
169 operator|(_Ios_Iostate __a, _Ios_Iostate __b)
170 {
return _Ios_Iostate(static_cast<int>(__a) | static_cast<int>(__b)); }
172 inline _GLIBCXX_CONSTEXPR _Ios_Iostate
173 operator^(_Ios_Iostate __a, _Ios_Iostate __b)
174 {
return _Ios_Iostate(static_cast<int>(__a) ^ static_cast<int>(__b)); }
176 inline _GLIBCXX_CONSTEXPR _Ios_Iostate
177 operator~(_Ios_Iostate __a)
178 {
return _Ios_Iostate(~static_cast<int>(__a)); }
180 inline const _Ios_Iostate&
181 operator|=(_Ios_Iostate& __a, _Ios_Iostate __b)
182 {
return __a = __a | __b; }
184 inline const _Ios_Iostate&
185 operator&=(_Ios_Iostate& __a, _Ios_Iostate __b)
186 {
return __a = __a & __b; }
188 inline const _Ios_Iostate&
189 operator^=(_Ios_Iostate& __a, _Ios_Iostate __b)
190 {
return __a = __a ^ __b; }
196 _S_cur = _GLIBCXX_STDIO_SEEK_CUR,
197 _S_end = _GLIBCXX_STDIO_SEEK_END,
198 _S_ios_seekdir_end = 1L << 16
201 #if __cplusplus >= 201103L 207 const error_category& iostream_category() noexcept;
210 make_error_code(io_errc __e) noexcept
211 {
return error_code(static_cast<int>(__e), iostream_category()); }
215 {
return error_condition(static_cast<int>(__e), iostream_category()); }
230 #if _GLIBCXX_USE_CXX11_ABI 231 #if __cplusplus < 201103L 254 #if _GLIBCXX_USE_CXX11_ABI 255 class _GLIBCXX_ABI_TAG_CXX11 failure :
public system_error 259 failure(
const string& __str);
261 #if __cplusplus >= 201103L 266 failure(
const char*,
const error_code& = io_errc::stream);
273 what()
const throw();
282 failure(
const string& __str)
throw();
290 what()
const throw();
292 #if __cplusplus >= 201103L 297 failure(
const string& __s,
const error_code&) noexcept
303 : failure(
string(__s))
347 static const fmtflags
dec = _S_dec;
350 static const fmtflags
fixed = _S_fixed;
353 static const fmtflags
hex = _S_hex;
358 static const fmtflags
internal = _S_internal;
362 static const fmtflags
left = _S_left;
365 static const fmtflags
oct = _S_oct;
369 static const fmtflags
right = _S_right;
386 static const fmtflags
skipws = _S_skipws;
396 static const fmtflags adjustfield = _S_adjustfield;
399 static const fmtflags basefield = _S_basefield;
402 static const fmtflags floatfield = _S_floatfield;
420 static const iostate badbit = _S_badbit;
423 static const iostate eofbit = _S_eofbit;
428 static const iostate failbit = _S_failbit;
431 static const iostate goodbit = _S_goodbit;
450 static const openmode app = _S_app;
453 static const openmode ate = _S_ate;
458 static const openmode binary = _S_bin;
461 static const openmode in = _S_in;
464 static const openmode out = _S_out;
467 static const openmode trunc = _S_trunc;
482 static const seekdir beg = _S_beg;
485 static const seekdir cur = _S_cur;
488 static const seekdir
end = _S_end;
490 #if __cplusplus <= 201402L 493 _GLIBCXX_DEPRECATED_SUGGEST(
"std::iostate");
494 typedef int open_mode
495 _GLIBCXX_DEPRECATED_SUGGEST(
"std::openmode");
497 _GLIBCXX_DEPRECATED_SUGGEST(
"std::seekdir");
500 _GLIBCXX_DEPRECATED_SUGGEST(
"std::streampos");
502 _GLIBCXX_DEPRECATED_SUGGEST(
"std::streamoff");
529 typedef void (*event_callback) (
event __e,
ios_base& __b,
int __i);
542 register_callback(event_callback __fn,
int __index);
548 iostate _M_exception;
549 iostate _M_streambuf_state;
553 struct _Callback_list
556 _Callback_list* _M_next;
559 _Atomic_word _M_refcount;
562 _Callback_list* __cb)
563 : _M_next(__cb), _M_fn(__fn), _M_index(__index), _M_refcount(0) { }
566 _M_add_reference() { __gnu_cxx::__atomic_add_dispatch(&_M_refcount, 1); }
570 _M_remove_reference()
573 _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(&_M_refcount);
574 int __res = __gnu_cxx::__exchange_and_add_dispatch(&_M_refcount, -1);
577 _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(&_M_refcount);
583 _Callback_list* _M_callbacks;
586 _M_call_callbacks(
event __ev)
throw();
589 _M_dispose_callbacks(
void)
throw();
596 _Words() : _M_pword(0), _M_iword(0) { }
604 enum { _S_local_word_size = 8 };
605 _Words _M_local_word[_S_local_word_size];
612 _M_grow_words(
int __index,
bool __iword);
633 #if __cplusplus >= 201103L 634 Init(
const Init&) =
default;
635 Init& operator=(
const Init&) =
default;
639 static _Atomic_word _S_refcount;
640 static bool _S_synced_with_stdio;
662 fmtflags __old = _M_flags;
678 fmtflags __old = _M_flags;
693 setf(fmtflags __fmtfl, fmtflags __mask)
695 fmtflags __old = _M_flags;
697 _M_flags |= (__fmtfl & __mask);
709 { _M_flags &= ~__mask; }
720 {
return _M_precision; }
731 _M_precision = __prec;
770 sync_with_stdio(
bool __sync =
true);
782 imbue(
const locale& __loc)
throw();
794 {
return _M_ios_locale; }
805 {
return _M_ios_locale; }
841 _Words& __word = ((unsigned)__ix < (
unsigned)_M_word_size)
842 ? _M_word[__ix] : _M_grow_words(__ix,
true);
843 return __word._M_iword;
862 _Words& __word = ((unsigned)__ix < (
unsigned)_M_word_size)
863 ? _M_word[__ix] : _M_grow_words(__ix,
false);
864 return __word._M_pword;
881 #if __cplusplus < 201103L 894 operator=(
const ios_base&) =
delete;
1085 #if __cplusplus >= 201103L 1106 _GLIBCXX_END_NAMESPACE_VERSION
const locale & _M_getloc() const
Locale access.
The base of the I/O class hierarchy.This class defines everything that can be defined about I/O that ...
streamsize precision() const
Flags access.
void(* event_callback)(event __e, ios_base &__b, int __i)
The type of an event callback function.
ios_base & nounitbuf(ios_base &__base)
Calls base.unsetf(ios_base::unitbuf).
ios_base & scientific(ios_base &__base)
Calls base.setf(ios_base::scientific, ios_base::floatfield).
ios_base & noskipws(ios_base &__base)
Calls base.unsetf(ios_base::skipws).
Base class for all library exceptions.
void unsetf(fmtflags __mask)
Clearing format flags.
ios_base & fixed(ios_base &__base)
Calls base.setf(ios_base::fixed, ios_base::floatfield).
Container class for localization functionality.The locale class is first a class wrapper for C librar...
static const fmtflags oct
Converts integer input or generates integer output in octal base.
fmtflags setf(fmtflags __fmtfl)
Setting new format flags.
event
The set of events that may be passed to an event callback.
ios_base & showbase(ios_base &__base)
Calls base.setf(ios_base::showbase).
_Ios_Seekdir seekdir
This is an enumerated type.
long long streamoff
Type used by fpos, char_traits<char>, and char_traits<wchar_t>.
One of two subclasses of exception.
static const fmtflags basefield
A mask of dec|oct|hex. Useful for the 2-arg form of setf.
static const fmtflags adjustfield
A mask of left|right|internal. Useful for the 2-arg form of setf.
streamsize precision(streamsize __prec)
Changing flags.
static const fmtflags showpoint
Generates a decimal-point character unconditionally in generated floating-point output.
static const fmtflags hex
Converts integer input or generates integer output in hexadecimal base.
static const fmtflags uppercase
Replaces certain lowercase letters with their uppercase equivalents in generated output.
_Ios_Iostate iostate
This is a bitmask type.
static const fmtflags fixed
Generate floating-point output in fixed-point notation.
ios_base & right(ios_base &__base)
Calls base.setf(ios_base::right, ios_base::adjustfield).
ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
bitset< _Nb > operator^(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
ios_base & noshowpos(ios_base &__base)
Calls base.unsetf(ios_base::showpos).
fmtflags flags() const
Access to format flags.
ios_base & dec(ios_base &__base)
Calls base.setf(ios_base::dec, ios_base::basefield).
ios_base & defaultfloat(ios_base &__base)
Calls base.unsetf(ios_base::floatfield)
static const fmtflags boolalpha
Insert/extract bool in alphabetic rather than numeric format.
static const fmtflags dec
Converts integer input or generates integer output in decimal base.
ios_base & noshowbase(ios_base &__base)
Calls base.unsetf(ios_base::showbase).
static const fmtflags scientific
Generates floating-point output in scientific notation.
ios_base & showpos(ios_base &__base)
Calls base.setf(ios_base::showpos).
ios_base & hex(ios_base &__base)
Calls base.setf(ios_base::hex, ios_base::basefield).
ios_base & noshowpoint(ios_base &__base)
Calls base.unsetf(ios_base::showpoint).
ios_base & boolalpha(ios_base &__base)
Calls base.setf(ios_base::boolalpha).
ios_base & skipws(ios_base &__base)
Calls base.setf(ios_base::skipws).
_Ios_Openmode openmode
This is a bitmask type.
fmtflags flags(fmtflags __fmtfl)
Setting new format flags all at once.
static const fmtflags unitbuf
Flushes output after each output operation.
fmtflags setf(fmtflags __fmtfl, fmtflags __mask)
Setting new format flags.
bitset< _Nb > operator &(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
static const fmtflags showbase
Generates a prefix indicating the numeric base of generated integer output.
error_condition make_error_condition(future_errc __errc) noexcept
Overload for make_error_condition.
ios_base & nouppercase(ios_base &__base)
Calls base.unsetf(ios_base::uppercase).
long & iword(int __ix)
Access to integer array.
ISO C++ entities toplevel namespace is std.
static const fmtflags showpos
Generates a + sign in non-negative generated numeric output.
static const fmtflags right
Adds fill characters on the left (initial positions) of certain generated output. (I...
bitset< _Nb > operator|(const bitset< _Nb > &__x, const bitset< _Nb > &__y) noexcept
Global bitwise operations on bitsets.
static const fmtflags left
Adds fill characters on the right (final positions) of certain generated output. (I.e., the thing you print is flush left.)
_Tp * end(valarray< _Tp > &__va)
Return an iterator pointing to one past the last element of the valarray.
static const fmtflags floatfield
A mask of scientific|fixed. Useful for the 2-arg form of setf.
ios_base & uppercase(ios_base &__base)
Calls base.setf(ios_base::uppercase).
ios_base & noboolalpha(ios_base &__base)
Calls base.unsetf(ios_base::boolalpha).
ios_base & oct(ios_base &__base)
Calls base.setf(ios_base::oct, ios_base::basefield).
Class representing stream positions.
ios_base & showpoint(ios_base &__base)
Calls base.setf(ios_base::showpoint).
streamsize width(streamsize __wide)
Changing flags.
locale getloc() const
Locale access.
static const fmtflags internal
Adds fill characters at a designated internal point in certain generated output, or identical to righ...
static const fmtflags skipws
Skips leading white space before certain input operations.
ios_base & hexfloat(ios_base &__base)
Calls base.setf(ios_base::fixed|ios_basescientific, ios_base::floatfield)
ios_base & unitbuf(ios_base &__base)
Calls base.setf(ios_base::unitbuf).
streamsize width() const
Flags access.
void *& pword(int __ix)
Access to void pointer array.
constexpr _Iterator __base(_Iterator __it)
An exception type that includes an error_code value.
ios_base & left(ios_base &__base)
Calls base.setf(ios_base::left, ios_base::adjustfield).
_Ios_Fmtflags fmtflags
This is a bitmask type.