31 #define _BASIC_IOS_H 1 33 #ifdef _GLIBCXX_SYSHDR 34 #pragma GCC system_header 44 namespace std _GLIBCXX_VISIBILITY(default)
46 _GLIBCXX_BEGIN_NAMESPACE_VERSION
48 template<
typename _Facet>
50 __check_facet(
const _Facet* __f)
69 template<
typename _CharT,
typename _Traits>
70 class basic_ios :
public ios_base
72 #if __cplusplus >= 202002L 73 static_assert(is_same_v<_CharT, typename _Traits::char_type>);
104 mutable char_type _M_fill;
105 mutable bool _M_fill_init;
109 const __ctype_type* _M_ctype;
123 #if __cplusplus >= 201103L 125 explicit operator bool()
const 126 {
return !this->
fail(); }
128 operator void*()
const 135 {
return this->
fail(); }
148 {
return _M_streambuf_state; }
174 _M_setstate(iostate __state)
178 _M_streambuf_state |= __state;
180 { __throw_exception_again; }
192 {
return this->
rdstate() == 0; }
238 {
return _M_exception; }
274 _M_exception = __except;
275 this->
clear(_M_streambuf_state);
286 :
ios_base(), _M_tie(0), _M_fill(), _M_fill_init(false), _M_streambuf(0),
287 _M_ctype(0), _M_num_put(0), _M_num_get(0)
288 { this->
init(__sb); }
339 {
return _M_streambuf; }
390 if (__builtin_expect(!_M_fill_init,
false))
391 return this->
widen(
' ');
407 char_type __old = _M_fill;
446 narrow(char_type __c,
char __dfault)
const 447 {
return __check_facet(_M_ctype).narrow(__c, __dfault); }
466 {
return __check_facet(_M_ctype).widen(__c); }
477 :
ios_base(), _M_tie(0), _M_fill(char_type()), _M_fill_init(false),
478 _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0)
490 #if __cplusplus >= 201103L 497 ios_base::_M_move(__rhs);
498 _M_cache_locale(_M_ios_locale);
499 this->
tie(__rhs.tie(
nullptr));
500 _M_fill = __rhs._M_fill;
501 _M_fill_init = __rhs._M_fill_init;
502 _M_streambuf =
nullptr;
507 { this->move(__rhs); }
512 ios_base::_M_swap(__rhs);
513 _M_cache_locale(_M_ios_locale);
514 __rhs._M_cache_locale(__rhs._M_ios_locale);
515 std::swap(_M_tie, __rhs._M_tie);
516 std::swap(_M_fill, __rhs._M_fill);
517 std::swap(_M_fill_init, __rhs._M_fill_init);
522 { _M_streambuf = __sb; }
526 _M_cache_locale(
const locale& __loc);
529 _GLIBCXX_END_NAMESPACE_VERSION
num_put< _CharT, ostreambuf_iterator< _CharT, _Traits > > __num_put_type
void clear(iostate __state=goodbit)
[Re]sets the error state.
static const iostate eofbit
Indicates that an input operation reached the end of an input sequence.
basic_streambuf< _CharT, _Traits > * rdbuf() const
Accessing the underlying buffer.
bool good() const
Fast error checking.
basic_ios(basic_streambuf< _CharT, _Traits > *__sb)
Constructor performs initialization.
static const iostate badbit
Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error fro...
static const iostate goodbit
Indicates all is well.
Primary class template num_get.This facet encapsulates the code to parse and return a number from a s...
bool operator!() const
The quick-and-easy status check.
_Traits::off_type off_type
char_type fill(char_type __ch)
Sets a new empty character.
Template class basic_ostream.
ISO C++ entities toplevel namespace is std.
void init(basic_streambuf< _CharT, _Traits > *__sb)
All setup is performed here.
Container class for localization functionality.The locale class is first a class wrapper for C librar...
_Traits::pos_type pos_type
Primary class template num_put.This facet encapsulates the code to convert a number to a string...
char narrow(char_type __c, char __dfault) const
Squeezes characters.
locale imbue(const locale &__loc)
Moves to a new locale.
Primary class template ctype facet.This template class defines classification and conversion function...
The base of the I/O class hierarchy.This class defines everything that can be defined about I/O that ...
Template class basic_ios, virtual base class for all stream classes.
iostate rdstate() const
Returns the error state of the stream buffer.
static const iostate failbit
Indicates that an input operation failed to read the expected characters, or that an output operation...
ctype< _CharT > __ctype_type
iostate exceptions() const
Throwing exceptions on errors.
char_type widen(char __c) const
Widens characters.
virtual ~basic_ios()
Empty.
bool fail() const
Fast error checking.
void exceptions(iostate __except)
Throwing exceptions on errors.
void setstate(iostate __state)
Sets additional flags in the error state.
basic_ostream< _CharT, _Traits > * tie() const
Fetches the current tied stream.
bool eof() const
Fast error checking.
char_type fill() const
Retrieves the empty character.
The actual work of input and output (interface).
num_get< _CharT, istreambuf_iterator< _CharT, _Traits > > __num_get_type
bool bad() const
Fast error checking.
basic_ostream< _CharT, _Traits > * tie(basic_ostream< _CharT, _Traits > *__tiestr)
Ties this stream to an output stream.
_Traits::int_type int_type
basic_ios & copyfmt(const basic_ios &__rhs)
Copies fields of __rhs into this.