Home | History | Annotate | Line # | Download | only in include
      1  1.1  joerg // -*- C++ -*-
      2  1.1  joerg //===---------------------------- ios -------------------------------------===//
      3  1.1  joerg //
      4  1.1  joerg // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
      5  1.1  joerg // See https://llvm.org/LICENSE.txt for license information.
      6  1.1  joerg // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
      7  1.1  joerg //
      8  1.1  joerg //===----------------------------------------------------------------------===//
      9  1.1  joerg 
     10  1.1  joerg #ifndef _LIBCPP_IOS
     11  1.1  joerg #define _LIBCPP_IOS
     12  1.1  joerg 
     13  1.1  joerg /*
     14  1.1  joerg     ios synopsis
     15  1.1  joerg 
     16  1.1  joerg #include <iosfwd>
     17  1.1  joerg 
     18  1.1  joerg namespace std
     19  1.1  joerg {
     20  1.1  joerg 
     21  1.1  joerg typedef OFF_T streamoff;
     22  1.1  joerg typedef SZ_T streamsize;
     23  1.1  joerg template <class stateT> class fpos;
     24  1.1  joerg 
     25  1.1  joerg class ios_base
     26  1.1  joerg {
     27  1.1  joerg public:
     28  1.1  joerg     class failure;
     29  1.1  joerg 
     30  1.1  joerg     typedef T1 fmtflags;
     31  1.1  joerg     static constexpr fmtflags boolalpha;
     32  1.1  joerg     static constexpr fmtflags dec;
     33  1.1  joerg     static constexpr fmtflags fixed;
     34  1.1  joerg     static constexpr fmtflags hex;
     35  1.1  joerg     static constexpr fmtflags internal;
     36  1.1  joerg     static constexpr fmtflags left;
     37  1.1  joerg     static constexpr fmtflags oct;
     38  1.1  joerg     static constexpr fmtflags right;
     39  1.1  joerg     static constexpr fmtflags scientific;
     40  1.1  joerg     static constexpr fmtflags showbase;
     41  1.1  joerg     static constexpr fmtflags showpoint;
     42  1.1  joerg     static constexpr fmtflags showpos;
     43  1.1  joerg     static constexpr fmtflags skipws;
     44  1.1  joerg     static constexpr fmtflags unitbuf;
     45  1.1  joerg     static constexpr fmtflags uppercase;
     46  1.1  joerg     static constexpr fmtflags adjustfield;
     47  1.1  joerg     static constexpr fmtflags basefield;
     48  1.1  joerg     static constexpr fmtflags floatfield;
     49  1.1  joerg 
     50  1.1  joerg     typedef T2 iostate;
     51  1.1  joerg     static constexpr iostate badbit;
     52  1.1  joerg     static constexpr iostate eofbit;
     53  1.1  joerg     static constexpr iostate failbit;
     54  1.1  joerg     static constexpr iostate goodbit;
     55  1.1  joerg 
     56  1.1  joerg     typedef T3 openmode;
     57  1.1  joerg     static constexpr openmode app;
     58  1.1  joerg     static constexpr openmode ate;
     59  1.1  joerg     static constexpr openmode binary;
     60  1.1  joerg     static constexpr openmode in;
     61  1.1  joerg     static constexpr openmode out;
     62  1.1  joerg     static constexpr openmode trunc;
     63  1.1  joerg 
     64  1.1  joerg     typedef T4 seekdir;
     65  1.1  joerg     static constexpr seekdir beg;
     66  1.1  joerg     static constexpr seekdir cur;
     67  1.1  joerg     static constexpr seekdir end;
     68  1.1  joerg 
     69  1.1  joerg     class Init;
     70  1.1  joerg 
     71  1.1  joerg     // 27.5.2.2 fmtflags state:
     72  1.1  joerg     fmtflags flags() const;
     73  1.1  joerg     fmtflags flags(fmtflags fmtfl);
     74  1.1  joerg     fmtflags setf(fmtflags fmtfl);
     75  1.1  joerg     fmtflags setf(fmtflags fmtfl, fmtflags mask);
     76  1.1  joerg     void unsetf(fmtflags mask);
     77  1.1  joerg 
     78  1.1  joerg     streamsize precision() const;
     79  1.1  joerg     streamsize precision(streamsize prec);
     80  1.1  joerg     streamsize width() const;
     81  1.1  joerg     streamsize width(streamsize wide);
     82  1.1  joerg 
     83  1.1  joerg     // 27.5.2.3 locales:
     84  1.1  joerg     locale imbue(const locale& loc);
     85  1.1  joerg     locale getloc() const;
     86  1.1  joerg 
     87  1.1  joerg     // 27.5.2.5 storage:
     88  1.1  joerg     static int xalloc();
     89  1.1  joerg     long& iword(int index);
     90  1.1  joerg     void*& pword(int index);
     91  1.1  joerg 
     92  1.1  joerg     // destructor
     93  1.1  joerg     virtual ~ios_base();
     94  1.1  joerg 
     95  1.1  joerg     // 27.5.2.6 callbacks;
     96  1.1  joerg     enum event { erase_event, imbue_event, copyfmt_event };
     97  1.1  joerg     typedef void (*event_callback)(event, ios_base&, int index);
     98  1.1  joerg     void register_callback(event_callback fn, int index);
     99  1.1  joerg 
    100  1.1  joerg     ios_base(const ios_base&) = delete;
    101  1.1  joerg     ios_base& operator=(const ios_base&) = delete;
    102  1.1  joerg 
    103  1.1  joerg     static bool sync_with_stdio(bool sync = true);
    104  1.1  joerg 
    105  1.1  joerg protected:
    106  1.1  joerg     ios_base();
    107  1.1  joerg };
    108  1.1  joerg 
    109  1.1  joerg template <class charT, class traits = char_traits<charT> >
    110  1.1  joerg class basic_ios
    111  1.1  joerg     : public ios_base
    112  1.1  joerg {
    113  1.1  joerg public:
    114  1.1  joerg     // types:
    115  1.1  joerg     typedef charT char_type;
    116  1.1  joerg     typedef typename traits::int_type int_type;  // removed in C++17
    117  1.1  joerg     typedef typename traits::pos_type pos_type;  // removed in C++17
    118  1.1  joerg     typedef typename traits::off_type off_type;  // removed in C++17
    119  1.1  joerg     typedef traits traits_type;
    120  1.1  joerg 
    121  1.1  joerg     operator unspecified-bool-type() const;
    122  1.1  joerg     bool operator!() const;
    123  1.1  joerg     iostate rdstate() const;
    124  1.1  joerg     void clear(iostate state = goodbit);
    125  1.1  joerg     void setstate(iostate state);
    126  1.1  joerg     bool good() const;
    127  1.1  joerg     bool eof() const;
    128  1.1  joerg     bool fail() const;
    129  1.1  joerg     bool bad() const;
    130  1.1  joerg 
    131  1.1  joerg     iostate exceptions() const;
    132  1.1  joerg     void exceptions(iostate except);
    133  1.1  joerg 
    134  1.1  joerg     // 27.5.4.1 Constructor/destructor:
    135  1.1  joerg     explicit basic_ios(basic_streambuf<charT,traits>* sb);
    136  1.1  joerg     virtual ~basic_ios();
    137  1.1  joerg 
    138  1.1  joerg     // 27.5.4.2 Members:
    139  1.1  joerg     basic_ostream<charT,traits>* tie() const;
    140  1.1  joerg     basic_ostream<charT,traits>* tie(basic_ostream<charT,traits>* tiestr);
    141  1.1  joerg 
    142  1.1  joerg     basic_streambuf<charT,traits>* rdbuf() const;
    143  1.1  joerg     basic_streambuf<charT,traits>* rdbuf(basic_streambuf<charT,traits>* sb);
    144  1.1  joerg 
    145  1.1  joerg     basic_ios& copyfmt(const basic_ios& rhs);
    146  1.1  joerg 
    147  1.1  joerg     char_type fill() const;
    148  1.1  joerg     char_type fill(char_type ch);
    149  1.1  joerg 
    150  1.1  joerg     locale imbue(const locale& loc);
    151  1.1  joerg 
    152  1.1  joerg     char narrow(char_type c, char dfault) const;
    153  1.1  joerg     char_type widen(char c) const;
    154  1.1  joerg 
    155  1.1  joerg     basic_ios(const basic_ios& ) = delete;
    156  1.1  joerg     basic_ios& operator=(const basic_ios&) = delete;
    157  1.1  joerg 
    158  1.1  joerg protected:
    159  1.1  joerg     basic_ios();
    160  1.1  joerg     void init(basic_streambuf<charT,traits>* sb);
    161  1.1  joerg     void move(basic_ios& rhs);
    162  1.1  joerg     void swap(basic_ios& rhs) noexcept;
    163  1.1  joerg     void set_rdbuf(basic_streambuf<charT, traits>* sb);
    164  1.1  joerg };
    165  1.1  joerg 
    166  1.1  joerg // 27.5.5, manipulators:
    167  1.1  joerg ios_base& boolalpha (ios_base& str);
    168  1.1  joerg ios_base& noboolalpha(ios_base& str);
    169  1.1  joerg ios_base& showbase (ios_base& str);
    170  1.1  joerg ios_base& noshowbase (ios_base& str);
    171  1.1  joerg ios_base& showpoint (ios_base& str);
    172  1.1  joerg ios_base& noshowpoint(ios_base& str);
    173  1.1  joerg ios_base& showpos (ios_base& str);
    174  1.1  joerg ios_base& noshowpos (ios_base& str);
    175  1.1  joerg ios_base& skipws (ios_base& str);
    176  1.1  joerg ios_base& noskipws (ios_base& str);
    177  1.1  joerg ios_base& uppercase (ios_base& str);
    178  1.1  joerg ios_base& nouppercase(ios_base& str);
    179  1.1  joerg ios_base& unitbuf (ios_base& str);
    180  1.1  joerg ios_base& nounitbuf (ios_base& str);
    181  1.1  joerg 
    182  1.1  joerg // 27.5.5.2 adjustfield:
    183  1.1  joerg ios_base& internal (ios_base& str);
    184  1.1  joerg ios_base& left (ios_base& str);
    185  1.1  joerg ios_base& right (ios_base& str);
    186  1.1  joerg 
    187  1.1  joerg // 27.5.5.3 basefield:
    188  1.1  joerg ios_base& dec (ios_base& str);
    189  1.1  joerg ios_base& hex (ios_base& str);
    190  1.1  joerg ios_base& oct (ios_base& str);
    191  1.1  joerg 
    192  1.1  joerg // 27.5.5.4 floatfield:
    193  1.1  joerg ios_base& fixed (ios_base& str);
    194  1.1  joerg ios_base& scientific (ios_base& str);
    195  1.1  joerg ios_base& hexfloat (ios_base& str);
    196  1.1  joerg ios_base& defaultfloat(ios_base& str);
    197  1.1  joerg 
    198  1.1  joerg // 27.5.5.5 error reporting:
    199  1.1  joerg enum class io_errc
    200  1.1  joerg {
    201  1.1  joerg     stream = 1
    202  1.1  joerg };
    203  1.1  joerg 
    204  1.1  joerg concept_map ErrorCodeEnum<io_errc> { };
    205  1.1  joerg error_code make_error_code(io_errc e) noexcept;
    206  1.1  joerg error_condition make_error_condition(io_errc e) noexcept;
    207  1.1  joerg storage-class-specifier const error_category& iostream_category() noexcept;
    208  1.1  joerg 
    209  1.1  joerg }  // std
    210  1.1  joerg 
    211  1.1  joerg */
    212  1.1  joerg 
    213  1.1  joerg #include <__config>
    214  1.1  joerg #include <iosfwd>
    215  1.1  joerg #include <__locale>
    216  1.1  joerg #include <system_error>
    217  1.1  joerg 
    218  1.1  joerg #if !defined(_LIBCPP_HAS_NO_ATOMIC_HEADER)
    219  1.1  joerg #include <atomic>     // for __xindex_
    220  1.1  joerg #endif
    221  1.1  joerg 
    222  1.1  joerg #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
    223  1.1  joerg #pragma GCC system_header
    224  1.1  joerg #endif
    225  1.1  joerg 
    226  1.1  joerg _LIBCPP_BEGIN_NAMESPACE_STD
    227  1.1  joerg 
    228  1.1  joerg typedef ptrdiff_t streamsize;
    229  1.1  joerg 
    230  1.1  joerg class _LIBCPP_TYPE_VIS ios_base
    231  1.1  joerg {
    232  1.1  joerg public:
    233  1.1  joerg     class _LIBCPP_EXCEPTION_ABI failure;
    234  1.1  joerg 
    235  1.1  joerg     typedef unsigned int fmtflags;
    236  1.1  joerg     static const fmtflags boolalpha   = 0x0001;
    237  1.1  joerg     static const fmtflags dec         = 0x0002;
    238  1.1  joerg     static const fmtflags fixed       = 0x0004;
    239  1.1  joerg     static const fmtflags hex         = 0x0008;
    240  1.1  joerg     static const fmtflags internal    = 0x0010;
    241  1.1  joerg     static const fmtflags left        = 0x0020;
    242  1.1  joerg     static const fmtflags oct         = 0x0040;
    243  1.1  joerg     static const fmtflags right       = 0x0080;
    244  1.1  joerg     static const fmtflags scientific  = 0x0100;
    245  1.1  joerg     static const fmtflags showbase    = 0x0200;
    246  1.1  joerg     static const fmtflags showpoint   = 0x0400;
    247  1.1  joerg     static const fmtflags showpos     = 0x0800;
    248  1.1  joerg     static const fmtflags skipws      = 0x1000;
    249  1.1  joerg     static const fmtflags unitbuf     = 0x2000;
    250  1.1  joerg     static const fmtflags uppercase   = 0x4000;
    251  1.1  joerg     static const fmtflags adjustfield = left | right | internal;
    252  1.1  joerg     static const fmtflags basefield   = dec | oct | hex;
    253  1.1  joerg     static const fmtflags floatfield  = scientific | fixed;
    254  1.1  joerg 
    255  1.1  joerg     typedef unsigned int iostate;
    256  1.1  joerg     static const iostate badbit  = 0x1;
    257  1.1  joerg     static const iostate eofbit  = 0x2;
    258  1.1  joerg     static const iostate failbit = 0x4;
    259  1.1  joerg     static const iostate goodbit = 0x0;
    260  1.1  joerg 
    261  1.1  joerg     typedef unsigned int openmode;
    262  1.1  joerg     static const openmode app    = 0x01;
    263  1.1  joerg     static const openmode ate    = 0x02;
    264  1.1  joerg     static const openmode binary = 0x04;
    265  1.1  joerg     static const openmode in     = 0x08;
    266  1.1  joerg     static const openmode out    = 0x10;
    267  1.1  joerg     static const openmode trunc  = 0x20;
    268  1.1  joerg 
    269  1.1  joerg     enum seekdir {beg, cur, end};
    270  1.1  joerg 
    271  1.1  joerg #if _LIBCPP_STD_VER <= 14
    272  1.1  joerg     typedef iostate      io_state;
    273  1.1  joerg     typedef openmode     open_mode;
    274  1.1  joerg     typedef seekdir      seek_dir;
    275  1.1  joerg 
    276  1.1  joerg     typedef _VSTD::streamoff streamoff;
    277  1.1  joerg     typedef _VSTD::streampos streampos;
    278  1.1  joerg #endif
    279  1.1  joerg 
    280  1.1  joerg     class _LIBCPP_TYPE_VIS Init;
    281  1.1  joerg 
    282  1.1  joerg     // 27.5.2.2 fmtflags state:
    283  1.1  joerg     _LIBCPP_INLINE_VISIBILITY fmtflags flags() const;
    284  1.1  joerg     _LIBCPP_INLINE_VISIBILITY fmtflags flags(fmtflags __fmtfl);
    285  1.1  joerg     _LIBCPP_INLINE_VISIBILITY fmtflags setf(fmtflags __fmtfl);
    286  1.1  joerg     _LIBCPP_INLINE_VISIBILITY fmtflags setf(fmtflags __fmtfl, fmtflags __mask);
    287  1.1  joerg     _LIBCPP_INLINE_VISIBILITY void unsetf(fmtflags __mask);
    288  1.1  joerg 
    289  1.1  joerg     _LIBCPP_INLINE_VISIBILITY streamsize precision() const;
    290  1.1  joerg     _LIBCPP_INLINE_VISIBILITY streamsize precision(streamsize __prec);
    291  1.1  joerg     _LIBCPP_INLINE_VISIBILITY streamsize width() const;
    292  1.1  joerg     _LIBCPP_INLINE_VISIBILITY streamsize width(streamsize __wide);
    293  1.1  joerg 
    294  1.1  joerg     // 27.5.2.3 locales:
    295  1.1  joerg     locale imbue(const locale& __loc);
    296  1.1  joerg     locale getloc() const;
    297  1.1  joerg 
    298  1.1  joerg     // 27.5.2.5 storage:
    299  1.1  joerg     static int xalloc();
    300  1.1  joerg     long& iword(int __index);
    301  1.1  joerg     void*& pword(int __index);
    302  1.1  joerg 
    303  1.1  joerg     // destructor
    304  1.1  joerg     virtual ~ios_base();
    305  1.1  joerg 
    306  1.1  joerg     // 27.5.2.6 callbacks;
    307  1.1  joerg     enum event { erase_event, imbue_event, copyfmt_event };
    308  1.1  joerg     typedef void (*event_callback)(event, ios_base&, int __index);
    309  1.1  joerg     void register_callback(event_callback __fn, int __index);
    310  1.1  joerg 
    311  1.1  joerg private:
    312  1.1  joerg     ios_base(const ios_base&); // = delete;
    313  1.1  joerg     ios_base& operator=(const ios_base&); // = delete;
    314  1.1  joerg 
    315  1.1  joerg public:
    316  1.1  joerg     static bool sync_with_stdio(bool __sync = true);
    317  1.1  joerg 
    318  1.1  joerg     _LIBCPP_INLINE_VISIBILITY iostate rdstate() const;
    319  1.1  joerg     void clear(iostate __state = goodbit);
    320  1.1  joerg     _LIBCPP_INLINE_VISIBILITY void setstate(iostate __state);
    321  1.1  joerg 
    322  1.1  joerg     _LIBCPP_INLINE_VISIBILITY bool good() const;
    323  1.1  joerg     _LIBCPP_INLINE_VISIBILITY bool eof() const;
    324  1.1  joerg     _LIBCPP_INLINE_VISIBILITY bool fail() const;
    325  1.1  joerg     _LIBCPP_INLINE_VISIBILITY bool bad() const;
    326  1.1  joerg 
    327  1.1  joerg     _LIBCPP_INLINE_VISIBILITY iostate exceptions() const;
    328  1.1  joerg     _LIBCPP_INLINE_VISIBILITY void exceptions(iostate __iostate);
    329  1.1  joerg 
    330  1.1  joerg     void __set_badbit_and_consider_rethrow();
    331  1.1  joerg     void __set_failbit_and_consider_rethrow();
    332  1.1  joerg 
    333  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    334  1.1  joerg     void __setstate_nothrow(iostate __state)
    335  1.1  joerg     {
    336  1.1  joerg         if (__rdbuf_)
    337  1.1  joerg             __rdstate_ |= __state;
    338  1.1  joerg         else
    339  1.1  joerg             __rdstate_ |= __state | ios_base::badbit;
    340  1.1  joerg     }
    341  1.1  joerg 
    342  1.1  joerg protected:
    343  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    344  1.1  joerg     ios_base() {// purposefully does no initialization
    345  1.1  joerg                }
    346  1.1  joerg 
    347  1.1  joerg     void init(void* __sb);
    348  1.1  joerg     _LIBCPP_INLINE_VISIBILITY void* rdbuf() const {return __rdbuf_;}
    349  1.1  joerg 
    350  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    351  1.1  joerg     void rdbuf(void* __sb)
    352  1.1  joerg     {
    353  1.1  joerg         __rdbuf_ = __sb;
    354  1.1  joerg         clear();
    355  1.1  joerg     }
    356  1.1  joerg 
    357  1.1  joerg     void __call_callbacks(event);
    358  1.1  joerg     void copyfmt(const ios_base&);
    359  1.1  joerg     void move(ios_base&);
    360  1.1  joerg     void swap(ios_base&) _NOEXCEPT;
    361  1.1  joerg 
    362  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    363  1.1  joerg     void set_rdbuf(void* __sb)
    364  1.1  joerg     {
    365  1.1  joerg         __rdbuf_ = __sb;
    366  1.1  joerg     }
    367  1.1  joerg 
    368  1.1  joerg private:
    369  1.1  joerg     // All data members must be scalars
    370  1.1  joerg     fmtflags        __fmtflags_;
    371  1.1  joerg     streamsize      __precision_;
    372  1.1  joerg     streamsize      __width_;
    373  1.1  joerg     iostate         __rdstate_;
    374  1.1  joerg     iostate         __exceptions_;
    375  1.1  joerg     void*           __rdbuf_;
    376  1.1  joerg     void*           __loc_;
    377  1.1  joerg     event_callback* __fn_;
    378  1.1  joerg     int*            __index_;
    379  1.1  joerg     size_t          __event_size_;
    380  1.1  joerg     size_t          __event_cap_;
    381  1.1  joerg // TODO(EricWF): Enable this for both Clang and GCC. Currently it is only
    382  1.1  joerg // enabled with clang.
    383  1.1  joerg #if defined(_LIBCPP_HAS_C_ATOMIC_IMP) && !defined(_LIBCPP_HAS_NO_THREADS)
    384  1.1  joerg     static atomic<int> __xindex_;
    385  1.1  joerg #else
    386  1.1  joerg     static int      __xindex_;
    387  1.1  joerg #endif
    388  1.1  joerg     long*           __iarray_;
    389  1.1  joerg     size_t          __iarray_size_;
    390  1.1  joerg     size_t          __iarray_cap_;
    391  1.1  joerg     void**          __parray_;
    392  1.1  joerg     size_t          __parray_size_;
    393  1.1  joerg     size_t          __parray_cap_;
    394  1.1  joerg };
    395  1.1  joerg 
    396  1.1  joerg //enum class io_errc
    397  1.1  joerg _LIBCPP_DECLARE_STRONG_ENUM(io_errc)
    398  1.1  joerg {
    399  1.1  joerg     stream = 1
    400  1.1  joerg };
    401  1.1  joerg _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(io_errc)
    402  1.1  joerg 
    403  1.1  joerg template <>
    404  1.1  joerg struct _LIBCPP_TEMPLATE_VIS is_error_code_enum<io_errc> : public true_type { };
    405  1.1  joerg 
    406  1.1  joerg #ifdef _LIBCPP_HAS_NO_STRONG_ENUMS
    407  1.1  joerg template <>
    408  1.1  joerg struct _LIBCPP_TEMPLATE_VIS is_error_code_enum<io_errc::__lx> : public true_type { };
    409  1.1  joerg #endif
    410  1.1  joerg 
    411  1.1  joerg _LIBCPP_FUNC_VIS
    412  1.1  joerg const error_category& iostream_category() _NOEXCEPT;
    413  1.1  joerg 
    414  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    415  1.1  joerg error_code
    416  1.1  joerg make_error_code(io_errc __e) _NOEXCEPT
    417  1.1  joerg {
    418  1.1  joerg     return error_code(static_cast<int>(__e), iostream_category());
    419  1.1  joerg }
    420  1.1  joerg 
    421  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    422  1.1  joerg error_condition
    423  1.1  joerg make_error_condition(io_errc __e) _NOEXCEPT
    424  1.1  joerg {
    425  1.1  joerg     return error_condition(static_cast<int>(__e), iostream_category());
    426  1.1  joerg }
    427  1.1  joerg 
    428  1.1  joerg class _LIBCPP_EXCEPTION_ABI ios_base::failure
    429  1.1  joerg     : public system_error
    430  1.1  joerg {
    431  1.1  joerg public:
    432  1.1  joerg     explicit failure(const string& __msg, const error_code& __ec = io_errc::stream);
    433  1.1  joerg     explicit failure(const char* __msg, const error_code& __ec = io_errc::stream);
    434  1.1  joerg     failure(const failure&) _NOEXCEPT = default;
    435  1.1  joerg     virtual ~failure() _NOEXCEPT;
    436  1.1  joerg };
    437  1.1  joerg 
    438  1.1  joerg _LIBCPP_NORETURN inline _LIBCPP_INLINE_VISIBILITY
    439  1.1  joerg void __throw_failure(char const* __msg) {
    440  1.1  joerg #ifndef _LIBCPP_NO_EXCEPTIONS
    441  1.1  joerg     throw ios_base::failure(__msg);
    442  1.1  joerg #else
    443  1.1  joerg     ((void)__msg);
    444  1.1  joerg     _VSTD::abort();
    445  1.1  joerg #endif
    446  1.1  joerg }
    447  1.1  joerg 
    448  1.1  joerg class _LIBCPP_TYPE_VIS ios_base::Init
    449  1.1  joerg {
    450  1.1  joerg public:
    451  1.1  joerg     Init();
    452  1.1  joerg     ~Init();
    453  1.1  joerg };
    454  1.1  joerg 
    455  1.1  joerg // fmtflags
    456  1.1  joerg 
    457  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    458  1.1  joerg ios_base::fmtflags
    459  1.1  joerg ios_base::flags() const
    460  1.1  joerg {
    461  1.1  joerg     return __fmtflags_;
    462  1.1  joerg }
    463  1.1  joerg 
    464  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    465  1.1  joerg ios_base::fmtflags
    466  1.1  joerg ios_base::flags(fmtflags __fmtfl)
    467  1.1  joerg {
    468  1.1  joerg     fmtflags __r = __fmtflags_;
    469  1.1  joerg     __fmtflags_ = __fmtfl;
    470  1.1  joerg     return __r;
    471  1.1  joerg }
    472  1.1  joerg 
    473  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    474  1.1  joerg ios_base::fmtflags
    475  1.1  joerg ios_base::setf(fmtflags __fmtfl)
    476  1.1  joerg {
    477  1.1  joerg     fmtflags __r = __fmtflags_;
    478  1.1  joerg     __fmtflags_ |= __fmtfl;
    479  1.1  joerg     return __r;
    480  1.1  joerg }
    481  1.1  joerg 
    482  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    483  1.1  joerg void
    484  1.1  joerg ios_base::unsetf(fmtflags __mask)
    485  1.1  joerg {
    486  1.1  joerg     __fmtflags_ &= ~__mask;
    487  1.1  joerg }
    488  1.1  joerg 
    489  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    490  1.1  joerg ios_base::fmtflags
    491  1.1  joerg ios_base::setf(fmtflags __fmtfl, fmtflags __mask)
    492  1.1  joerg {
    493  1.1  joerg     fmtflags __r = __fmtflags_;
    494  1.1  joerg     unsetf(__mask);
    495  1.1  joerg     __fmtflags_ |= __fmtfl & __mask;
    496  1.1  joerg     return __r;
    497  1.1  joerg }
    498  1.1  joerg 
    499  1.1  joerg // precision
    500  1.1  joerg 
    501  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    502  1.1  joerg streamsize
    503  1.1  joerg ios_base::precision() const
    504  1.1  joerg {
    505  1.1  joerg     return __precision_;
    506  1.1  joerg }
    507  1.1  joerg 
    508  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    509  1.1  joerg streamsize
    510  1.1  joerg ios_base::precision(streamsize __prec)
    511  1.1  joerg {
    512  1.1  joerg     streamsize __r = __precision_;
    513  1.1  joerg     __precision_ = __prec;
    514  1.1  joerg     return __r;
    515  1.1  joerg }
    516  1.1  joerg 
    517  1.1  joerg // width
    518  1.1  joerg 
    519  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    520  1.1  joerg streamsize
    521  1.1  joerg ios_base::width() const
    522  1.1  joerg {
    523  1.1  joerg     return __width_;
    524  1.1  joerg }
    525  1.1  joerg 
    526  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    527  1.1  joerg streamsize
    528  1.1  joerg ios_base::width(streamsize __wide)
    529  1.1  joerg {
    530  1.1  joerg     streamsize __r = __width_;
    531  1.1  joerg     __width_ = __wide;
    532  1.1  joerg     return __r;
    533  1.1  joerg }
    534  1.1  joerg 
    535  1.1  joerg // iostate
    536  1.1  joerg 
    537  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    538  1.1  joerg ios_base::iostate
    539  1.1  joerg ios_base::rdstate() const
    540  1.1  joerg {
    541  1.1  joerg     return __rdstate_;
    542  1.1  joerg }
    543  1.1  joerg 
    544  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    545  1.1  joerg void
    546  1.1  joerg ios_base::setstate(iostate __state)
    547  1.1  joerg {
    548  1.1  joerg     clear(__rdstate_ | __state);
    549  1.1  joerg }
    550  1.1  joerg 
    551  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    552  1.1  joerg bool
    553  1.1  joerg ios_base::good() const
    554  1.1  joerg {
    555  1.1  joerg     return __rdstate_ == 0;
    556  1.1  joerg }
    557  1.1  joerg 
    558  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    559  1.1  joerg bool
    560  1.1  joerg ios_base::eof() const
    561  1.1  joerg {
    562  1.1  joerg     return (__rdstate_ & eofbit) != 0;
    563  1.1  joerg }
    564  1.1  joerg 
    565  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    566  1.1  joerg bool
    567  1.1  joerg ios_base::fail() const
    568  1.1  joerg {
    569  1.1  joerg     return (__rdstate_ & (failbit | badbit)) != 0;
    570  1.1  joerg }
    571  1.1  joerg 
    572  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    573  1.1  joerg bool
    574  1.1  joerg ios_base::bad() const
    575  1.1  joerg {
    576  1.1  joerg     return (__rdstate_ & badbit) != 0;
    577  1.1  joerg }
    578  1.1  joerg 
    579  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    580  1.1  joerg ios_base::iostate
    581  1.1  joerg ios_base::exceptions() const
    582  1.1  joerg {
    583  1.1  joerg     return __exceptions_;
    584  1.1  joerg }
    585  1.1  joerg 
    586  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    587  1.1  joerg void
    588  1.1  joerg ios_base::exceptions(iostate __iostate)
    589  1.1  joerg {
    590  1.1  joerg     __exceptions_ = __iostate;
    591  1.1  joerg     clear(__rdstate_);
    592  1.1  joerg }
    593  1.1  joerg 
    594  1.1  joerg #if defined(_LIBCPP_CXX03_LANG)
    595  1.1  joerg struct _LIBCPP_TYPE_VIS __cxx03_bool {
    596  1.1  joerg   typedef void (__cxx03_bool::*__bool_type)();
    597  1.1  joerg   void __true_value() {}
    598  1.1  joerg };
    599  1.1  joerg #endif
    600  1.1  joerg 
    601  1.1  joerg template <class _CharT, class _Traits>
    602  1.1  joerg class _LIBCPP_TEMPLATE_VIS basic_ios
    603  1.1  joerg     : public ios_base
    604  1.1  joerg {
    605  1.1  joerg public:
    606  1.1  joerg     // types:
    607  1.1  joerg     typedef _CharT char_type;
    608  1.1  joerg     typedef _Traits traits_type;
    609  1.1  joerg 
    610  1.1  joerg     typedef typename traits_type::int_type int_type;
    611  1.1  joerg     typedef typename traits_type::pos_type pos_type;
    612  1.1  joerg     typedef typename traits_type::off_type off_type;
    613  1.1  joerg 
    614  1.1  joerg     static_assert((is_same<_CharT, typename traits_type::char_type>::value),
    615  1.1  joerg                   "traits_type::char_type must be the same type as CharT");
    616  1.1  joerg 
    617  1.1  joerg   // __true_value will generate undefined references when linking unless
    618  1.1  joerg   // we give it internal linkage.
    619  1.1  joerg 
    620  1.1  joerg #if defined(_LIBCPP_CXX03_LANG)
    621  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    622  1.1  joerg     operator __cxx03_bool::__bool_type() const {
    623  1.1  joerg         return !fail() ? &__cxx03_bool::__true_value : nullptr;
    624  1.1  joerg     }
    625  1.1  joerg #else
    626  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    627  1.1  joerg     _LIBCPP_EXPLICIT operator bool() const {return !fail();}
    628  1.1  joerg #endif
    629  1.1  joerg 
    630  1.1  joerg     _LIBCPP_INLINE_VISIBILITY bool operator!() const    {return  fail();}
    631  1.1  joerg     _LIBCPP_INLINE_VISIBILITY iostate rdstate() const   {return ios_base::rdstate();}
    632  1.1  joerg     _LIBCPP_INLINE_VISIBILITY void clear(iostate __state = goodbit) {ios_base::clear(__state);}
    633  1.1  joerg     _LIBCPP_INLINE_VISIBILITY void setstate(iostate __state) {ios_base::setstate(__state);}
    634  1.1  joerg     _LIBCPP_INLINE_VISIBILITY bool good() const {return ios_base::good();}
    635  1.1  joerg     _LIBCPP_INLINE_VISIBILITY bool eof() const  {return ios_base::eof();}
    636  1.1  joerg     _LIBCPP_INLINE_VISIBILITY bool fail() const {return ios_base::fail();}
    637  1.1  joerg     _LIBCPP_INLINE_VISIBILITY bool bad() const  {return ios_base::bad();}
    638  1.1  joerg 
    639  1.1  joerg     _LIBCPP_INLINE_VISIBILITY iostate exceptions() const {return ios_base::exceptions();}
    640  1.1  joerg     _LIBCPP_INLINE_VISIBILITY void exceptions(iostate __iostate) {ios_base::exceptions(__iostate);}
    641  1.1  joerg 
    642  1.1  joerg     // 27.5.4.1 Constructor/destructor:
    643  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    644  1.1  joerg     explicit basic_ios(basic_streambuf<char_type,traits_type>* __sb);
    645  1.1  joerg     virtual ~basic_ios();
    646  1.1  joerg 
    647  1.1  joerg     // 27.5.4.2 Members:
    648  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    649  1.1  joerg     basic_ostream<char_type, traits_type>* tie() const;
    650  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    651  1.1  joerg     basic_ostream<char_type, traits_type>* tie(basic_ostream<char_type, traits_type>* __tiestr);
    652  1.1  joerg 
    653  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    654  1.1  joerg     basic_streambuf<char_type, traits_type>* rdbuf() const;
    655  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    656  1.1  joerg     basic_streambuf<char_type, traits_type>* rdbuf(basic_streambuf<char_type, traits_type>* __sb);
    657  1.1  joerg 
    658  1.1  joerg     basic_ios& copyfmt(const basic_ios& __rhs);
    659  1.1  joerg 
    660  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    661  1.1  joerg     char_type fill() const;
    662  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    663  1.1  joerg     char_type fill(char_type __ch);
    664  1.1  joerg 
    665  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    666  1.1  joerg     locale imbue(const locale& __loc);
    667  1.1  joerg 
    668  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    669  1.1  joerg     char narrow(char_type __c, char __dfault) const;
    670  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    671  1.1  joerg     char_type widen(char __c) const;
    672  1.1  joerg 
    673  1.1  joerg protected:
    674  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    675  1.1  joerg     basic_ios() {// purposefully does no initialization
    676  1.1  joerg                 }
    677  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    678  1.1  joerg     void init(basic_streambuf<char_type, traits_type>* __sb);
    679  1.1  joerg 
    680  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    681  1.1  joerg     void move(basic_ios& __rhs);
    682  1.1  joerg #ifndef _LIBCPP_CXX03_LANG
    683  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    684  1.1  joerg     void move(basic_ios&& __rhs) {move(__rhs);}
    685  1.1  joerg #endif
    686  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    687  1.1  joerg     void swap(basic_ios& __rhs) _NOEXCEPT;
    688  1.1  joerg     _LIBCPP_INLINE_VISIBILITY
    689  1.1  joerg     void set_rdbuf(basic_streambuf<char_type, traits_type>* __sb);
    690  1.1  joerg private:
    691  1.1  joerg     basic_ostream<char_type, traits_type>* __tie_;
    692  1.1  joerg     mutable int_type __fill_;
    693  1.1  joerg };
    694  1.1  joerg 
    695  1.1  joerg template <class _CharT, class _Traits>
    696  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    697  1.1  joerg basic_ios<_CharT, _Traits>::basic_ios(basic_streambuf<char_type,traits_type>* __sb)
    698  1.1  joerg {
    699  1.1  joerg     init(__sb);
    700  1.1  joerg }
    701  1.1  joerg 
    702  1.1  joerg template <class _CharT, class _Traits>
    703  1.1  joerg basic_ios<_CharT, _Traits>::~basic_ios()
    704  1.1  joerg {
    705  1.1  joerg }
    706  1.1  joerg 
    707  1.1  joerg template <class _CharT, class _Traits>
    708  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    709  1.1  joerg void
    710  1.1  joerg basic_ios<_CharT, _Traits>::init(basic_streambuf<char_type, traits_type>* __sb)
    711  1.1  joerg {
    712  1.1  joerg     ios_base::init(__sb);
    713  1.1  joerg     __tie_ = nullptr;
    714  1.1  joerg     __fill_ = traits_type::eof();
    715  1.1  joerg }
    716  1.1  joerg 
    717  1.1  joerg template <class _CharT, class _Traits>
    718  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    719  1.1  joerg basic_ostream<_CharT, _Traits>*
    720  1.1  joerg basic_ios<_CharT, _Traits>::tie() const
    721  1.1  joerg {
    722  1.1  joerg     return __tie_;
    723  1.1  joerg }
    724  1.1  joerg 
    725  1.1  joerg template <class _CharT, class _Traits>
    726  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    727  1.1  joerg basic_ostream<_CharT, _Traits>*
    728  1.1  joerg basic_ios<_CharT, _Traits>::tie(basic_ostream<char_type, traits_type>* __tiestr)
    729  1.1  joerg {
    730  1.1  joerg     basic_ostream<char_type, traits_type>* __r = __tie_;
    731  1.1  joerg     __tie_ = __tiestr;
    732  1.1  joerg     return __r;
    733  1.1  joerg }
    734  1.1  joerg 
    735  1.1  joerg template <class _CharT, class _Traits>
    736  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    737  1.1  joerg basic_streambuf<_CharT, _Traits>*
    738  1.1  joerg basic_ios<_CharT, _Traits>::rdbuf() const
    739  1.1  joerg {
    740  1.1  joerg     return static_cast<basic_streambuf<char_type, traits_type>*>(ios_base::rdbuf());
    741  1.1  joerg }
    742  1.1  joerg 
    743  1.1  joerg template <class _CharT, class _Traits>
    744  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    745  1.1  joerg basic_streambuf<_CharT, _Traits>*
    746  1.1  joerg basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<char_type, traits_type>* __sb)
    747  1.1  joerg {
    748  1.1  joerg     basic_streambuf<char_type, traits_type>* __r = rdbuf();
    749  1.1  joerg     ios_base::rdbuf(__sb);
    750  1.1  joerg     return __r;
    751  1.1  joerg }
    752  1.1  joerg 
    753  1.1  joerg template <class _CharT, class _Traits>
    754  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    755  1.1  joerg locale
    756  1.1  joerg basic_ios<_CharT, _Traits>::imbue(const locale& __loc)
    757  1.1  joerg {
    758  1.1  joerg     locale __r = getloc();
    759  1.1  joerg     ios_base::imbue(__loc);
    760  1.1  joerg     if (rdbuf())
    761  1.1  joerg         rdbuf()->pubimbue(__loc);
    762  1.1  joerg     return __r;
    763  1.1  joerg }
    764  1.1  joerg 
    765  1.1  joerg template <class _CharT, class _Traits>
    766  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    767  1.1  joerg char
    768  1.1  joerg basic_ios<_CharT, _Traits>::narrow(char_type __c, char __dfault) const
    769  1.1  joerg {
    770  1.1  joerg     return use_facet<ctype<char_type> >(getloc()).narrow(__c, __dfault);
    771  1.1  joerg }
    772  1.1  joerg 
    773  1.1  joerg template <class _CharT, class _Traits>
    774  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    775  1.1  joerg _CharT
    776  1.1  joerg basic_ios<_CharT, _Traits>::widen(char __c) const
    777  1.1  joerg {
    778  1.1  joerg     return use_facet<ctype<char_type> >(getloc()).widen(__c);
    779  1.1  joerg }
    780  1.1  joerg 
    781  1.1  joerg template <class _CharT, class _Traits>
    782  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    783  1.1  joerg _CharT
    784  1.1  joerg basic_ios<_CharT, _Traits>::fill() const
    785  1.1  joerg {
    786  1.1  joerg     if (traits_type::eq_int_type(traits_type::eof(), __fill_))
    787  1.1  joerg         __fill_ = widen(' ');
    788  1.1  joerg     return __fill_;
    789  1.1  joerg }
    790  1.1  joerg 
    791  1.1  joerg template <class _CharT, class _Traits>
    792  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    793  1.1  joerg _CharT
    794  1.1  joerg basic_ios<_CharT, _Traits>::fill(char_type __ch)
    795  1.1  joerg {
    796  1.1  joerg     char_type __r = __fill_;
    797  1.1  joerg     __fill_ = __ch;
    798  1.1  joerg     return __r;
    799  1.1  joerg }
    800  1.1  joerg 
    801  1.1  joerg template <class _CharT, class _Traits>
    802  1.1  joerg basic_ios<_CharT, _Traits>&
    803  1.1  joerg basic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs)
    804  1.1  joerg {
    805  1.1  joerg     if (this != &__rhs)
    806  1.1  joerg     {
    807  1.1  joerg         __call_callbacks(erase_event);
    808  1.1  joerg         ios_base::copyfmt(__rhs);
    809  1.1  joerg         __tie_ = __rhs.__tie_;
    810  1.1  joerg         __fill_ = __rhs.__fill_;
    811  1.1  joerg         __call_callbacks(copyfmt_event);
    812  1.1  joerg         exceptions(__rhs.exceptions());
    813  1.1  joerg     }
    814  1.1  joerg     return *this;
    815  1.1  joerg }
    816  1.1  joerg 
    817  1.1  joerg template <class _CharT, class _Traits>
    818  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    819  1.1  joerg void
    820  1.1  joerg basic_ios<_CharT, _Traits>::move(basic_ios& __rhs)
    821  1.1  joerg {
    822  1.1  joerg     ios_base::move(__rhs);
    823  1.1  joerg     __tie_ = __rhs.__tie_;
    824  1.1  joerg     __rhs.__tie_ = nullptr;
    825  1.1  joerg     __fill_ = __rhs.__fill_;
    826  1.1  joerg }
    827  1.1  joerg 
    828  1.1  joerg template <class _CharT, class _Traits>
    829  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    830  1.1  joerg void
    831  1.1  joerg basic_ios<_CharT, _Traits>::swap(basic_ios& __rhs) _NOEXCEPT
    832  1.1  joerg {
    833  1.1  joerg     ios_base::swap(__rhs);
    834  1.1  joerg     _VSTD::swap(__tie_, __rhs.__tie_);
    835  1.1  joerg     _VSTD::swap(__fill_, __rhs.__fill_);
    836  1.1  joerg }
    837  1.1  joerg 
    838  1.1  joerg template <class _CharT, class _Traits>
    839  1.1  joerg inline _LIBCPP_INLINE_VISIBILITY
    840  1.1  joerg void
    841  1.1  joerg basic_ios<_CharT, _Traits>::set_rdbuf(basic_streambuf<char_type, traits_type>* __sb)
    842  1.1  joerg {
    843  1.1  joerg     ios_base::set_rdbuf(__sb);
    844  1.1  joerg }
    845  1.1  joerg 
    846  1.1  joerg inline
    847  1.1  joerg ios_base&
    848  1.1  joerg boolalpha(ios_base& __str)
    849  1.1  joerg {
    850  1.1  joerg     __str.setf(ios_base::boolalpha);
    851  1.1  joerg     return __str;
    852  1.1  joerg }
    853  1.1  joerg 
    854  1.1  joerg inline
    855  1.1  joerg ios_base&
    856  1.1  joerg noboolalpha(ios_base& __str)
    857  1.1  joerg {
    858  1.1  joerg     __str.unsetf(ios_base::boolalpha);
    859  1.1  joerg     return __str;
    860  1.1  joerg }
    861  1.1  joerg 
    862  1.1  joerg inline
    863  1.1  joerg ios_base&
    864  1.1  joerg showbase(ios_base& __str)
    865  1.1  joerg {
    866  1.1  joerg     __str.setf(ios_base::showbase);
    867  1.1  joerg     return __str;
    868  1.1  joerg }
    869  1.1  joerg 
    870  1.1  joerg inline
    871  1.1  joerg ios_base&
    872  1.1  joerg noshowbase(ios_base& __str)
    873  1.1  joerg {
    874  1.1  joerg     __str.unsetf(ios_base::showbase);
    875  1.1  joerg     return __str;
    876  1.1  joerg }
    877  1.1  joerg 
    878  1.1  joerg inline
    879  1.1  joerg ios_base&
    880  1.1  joerg showpoint(ios_base& __str)
    881  1.1  joerg {
    882  1.1  joerg     __str.setf(ios_base::showpoint);
    883  1.1  joerg     return __str;
    884  1.1  joerg }
    885  1.1  joerg 
    886  1.1  joerg inline
    887  1.1  joerg ios_base&
    888  1.1  joerg noshowpoint(ios_base& __str)
    889  1.1  joerg {
    890  1.1  joerg     __str.unsetf(ios_base::showpoint);
    891  1.1  joerg     return __str;
    892  1.1  joerg }
    893  1.1  joerg 
    894  1.1  joerg inline
    895  1.1  joerg ios_base&
    896  1.1  joerg showpos(ios_base& __str)
    897  1.1  joerg {
    898  1.1  joerg     __str.setf(ios_base::showpos);
    899  1.1  joerg     return __str;
    900  1.1  joerg }
    901  1.1  joerg 
    902  1.1  joerg inline
    903  1.1  joerg ios_base&
    904  1.1  joerg noshowpos(ios_base& __str)
    905  1.1  joerg {
    906  1.1  joerg     __str.unsetf(ios_base::showpos);
    907  1.1  joerg     return __str;
    908  1.1  joerg }
    909  1.1  joerg 
    910  1.1  joerg inline
    911  1.1  joerg ios_base&
    912  1.1  joerg skipws(ios_base& __str)
    913  1.1  joerg {
    914  1.1  joerg     __str.setf(ios_base::skipws);
    915  1.1  joerg     return __str;
    916  1.1  joerg }
    917  1.1  joerg 
    918  1.1  joerg inline
    919  1.1  joerg ios_base&
    920  1.1  joerg noskipws(ios_base& __str)
    921  1.1  joerg {
    922  1.1  joerg     __str.unsetf(ios_base::skipws);
    923  1.1  joerg     return __str;
    924  1.1  joerg }
    925  1.1  joerg 
    926  1.1  joerg inline
    927  1.1  joerg ios_base&
    928  1.1  joerg uppercase(ios_base& __str)
    929  1.1  joerg {
    930  1.1  joerg     __str.setf(ios_base::uppercase);
    931  1.1  joerg     return __str;
    932  1.1  joerg }
    933  1.1  joerg 
    934  1.1  joerg inline
    935  1.1  joerg ios_base&
    936  1.1  joerg nouppercase(ios_base& __str)
    937  1.1  joerg {
    938  1.1  joerg     __str.unsetf(ios_base::uppercase);
    939  1.1  joerg     return __str;
    940  1.1  joerg }
    941  1.1  joerg 
    942  1.1  joerg inline
    943  1.1  joerg ios_base&
    944  1.1  joerg unitbuf(ios_base& __str)
    945  1.1  joerg {
    946  1.1  joerg     __str.setf(ios_base::unitbuf);
    947  1.1  joerg     return __str;
    948  1.1  joerg }
    949  1.1  joerg 
    950  1.1  joerg inline
    951  1.1  joerg ios_base&
    952  1.1  joerg nounitbuf(ios_base& __str)
    953  1.1  joerg {
    954  1.1  joerg     __str.unsetf(ios_base::unitbuf);
    955  1.1  joerg     return __str;
    956  1.1  joerg }
    957  1.1  joerg 
    958  1.1  joerg inline
    959  1.1  joerg ios_base&
    960  1.1  joerg internal(ios_base& __str)
    961  1.1  joerg {
    962  1.1  joerg     __str.setf(ios_base::internal, ios_base::adjustfield);
    963  1.1  joerg     return __str;
    964  1.1  joerg }
    965  1.1  joerg 
    966  1.1  joerg inline
    967  1.1  joerg ios_base&
    968  1.1  joerg left(ios_base& __str)
    969  1.1  joerg {
    970  1.1  joerg     __str.setf(ios_base::left, ios_base::adjustfield);
    971  1.1  joerg     return __str;
    972  1.1  joerg }
    973  1.1  joerg 
    974  1.1  joerg inline
    975  1.1  joerg ios_base&
    976  1.1  joerg right(ios_base& __str)
    977  1.1  joerg {
    978  1.1  joerg     __str.setf(ios_base::right, ios_base::adjustfield);
    979  1.1  joerg     return __str;
    980  1.1  joerg }
    981  1.1  joerg 
    982  1.1  joerg inline
    983  1.1  joerg ios_base&
    984  1.1  joerg dec(ios_base& __str)
    985  1.1  joerg {
    986  1.1  joerg     __str.setf(ios_base::dec, ios_base::basefield);
    987  1.1  joerg     return __str;
    988  1.1  joerg }
    989  1.1  joerg 
    990  1.1  joerg inline
    991  1.1  joerg ios_base&
    992  1.1  joerg hex(ios_base& __str)
    993  1.1  joerg {
    994  1.1  joerg     __str.setf(ios_base::hex, ios_base::basefield);
    995  1.1  joerg     return __str;
    996  1.1  joerg }
    997  1.1  joerg 
    998  1.1  joerg inline
    999  1.1  joerg ios_base&
   1000  1.1  joerg oct(ios_base& __str)
   1001  1.1  joerg {
   1002  1.1  joerg     __str.setf(ios_base::oct, ios_base::basefield);
   1003  1.1  joerg     return __str;
   1004  1.1  joerg }
   1005  1.1  joerg 
   1006  1.1  joerg inline
   1007  1.1  joerg ios_base&
   1008  1.1  joerg fixed(ios_base& __str)
   1009  1.1  joerg {
   1010  1.1  joerg     __str.setf(ios_base::fixed, ios_base::floatfield);
   1011  1.1  joerg     return __str;
   1012  1.1  joerg }
   1013  1.1  joerg 
   1014  1.1  joerg inline
   1015  1.1  joerg ios_base&
   1016  1.1  joerg scientific(ios_base& __str)
   1017  1.1  joerg {
   1018  1.1  joerg     __str.setf(ios_base::scientific, ios_base::floatfield);
   1019  1.1  joerg     return __str;
   1020  1.1  joerg }
   1021  1.1  joerg 
   1022  1.1  joerg inline
   1023  1.1  joerg ios_base&
   1024  1.1  joerg hexfloat(ios_base& __str)
   1025  1.1  joerg {
   1026  1.1  joerg     __str.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield);
   1027  1.1  joerg     return __str;
   1028  1.1  joerg }
   1029  1.1  joerg 
   1030  1.1  joerg inline
   1031  1.1  joerg ios_base&
   1032  1.1  joerg defaultfloat(ios_base& __str)
   1033  1.1  joerg {
   1034  1.1  joerg     __str.unsetf(ios_base::floatfield);
   1035  1.1  joerg     return __str;
   1036  1.1  joerg }
   1037  1.1  joerg 
   1038  1.1  joerg _LIBCPP_END_NAMESPACE_STD
   1039  1.1  joerg 
   1040  1.1  joerg #endif // _LIBCPP_IOS
   1041