33 #ifndef _GLIBCXX_IOMANIP 
   34 #define _GLIBCXX_IOMANIP 1 
   36 #pragma GCC system_header 
   42 #if __cplusplus >= 201103L 
   46 namespace std _GLIBCXX_VISIBILITY(default)
 
   48 _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   64   { 
return { __mask }; }
 
   66   template<
typename _CharT, 
typename _Traits>
 
   67     inline basic_istream<_CharT, _Traits>& 
 
   68     operator>>(basic_istream<_CharT, _Traits>& __is, _Resetiosflags __f)
 
   74   template<
typename _CharT, 
typename _Traits>
 
   75     inline basic_ostream<_CharT, _Traits>& 
 
   76     operator<<(basic_ostream<_CharT, _Traits>& __os, _Resetiosflags __f)
 
   94   { 
return { __mask }; }
 
   96   template<
typename _CharT, 
typename _Traits>
 
   97     inline basic_istream<_CharT, _Traits>& 
 
   98     operator>>(basic_istream<_CharT, _Traits>& __is, _Setiosflags __f)
 
  100       __is.setf(__f._M_mask); 
 
  104   template<
typename _CharT, 
typename _Traits>
 
  105     inline basic_ostream<_CharT, _Traits>& 
 
  106     operator<<(basic_ostream<_CharT, _Traits>& __os, _Setiosflags __f)
 
  108       __os.setf(__f._M_mask); 
 
  113   struct _Setbase { 
int _M_base; };
 
  125   { 
return { __base }; }
 
  127   template<
typename _CharT, 
typename _Traits>
 
  128     inline basic_istream<_CharT, _Traits>& 
 
  129     operator>>(basic_istream<_CharT, _Traits>& __is, _Setbase __f)
 
  138   template<
typename _CharT, 
typename _Traits>
 
  139     inline basic_ostream<_CharT, _Traits>& 
 
  140     operator<<(basic_ostream<_CharT, _Traits>& __os, _Setbase __f)
 
  150   template<
typename _CharT>
 
  151     struct _Setfill { _CharT _M_c; };
 
  160   template<
typename _CharT>
 
  161     inline _Setfill<_CharT>
 
  165   template<
typename _CharT, 
typename _Traits>
 
  166     inline basic_istream<_CharT, _Traits>& 
 
  167     operator>>(basic_istream<_CharT, _Traits>& __is, _Setfill<_CharT> __f)
 
  173   template<
typename _CharT, 
typename _Traits>
 
  174     inline basic_ostream<_CharT, _Traits>& 
 
  175     operator<<(basic_ostream<_CharT, _Traits>& __os, _Setfill<_CharT> __f)
 
  182   struct _Setprecision { 
int _M_n; };
 
  195   template<
typename _CharT, 
typename _Traits>
 
  196     inline basic_istream<_CharT, _Traits>& 
 
  197     operator>>(basic_istream<_CharT, _Traits>& __is, _Setprecision __f)
 
  199       __is.precision(__f._M_n); 
 
  203   template<
typename _CharT, 
typename _Traits>
 
  204     inline basic_ostream<_CharT, _Traits>& 
 
  205     operator<<(basic_ostream<_CharT, _Traits>& __os, _Setprecision __f)
 
  207       __os.precision(__f._M_n); 
 
  212   struct _Setw { 
int _M_n; };
 
  225   template<
typename _CharT, 
typename _Traits>
 
  226     inline basic_istream<_CharT, _Traits>& 
 
  227     operator>>(basic_istream<_CharT, _Traits>& __is, _Setw __f)
 
  229       __is.width(__f._M_n);
 
  233   template<
typename _CharT, 
typename _Traits>
 
  234     inline basic_ostream<_CharT, _Traits>& 
 
  235     operator<<(basic_ostream<_CharT, _Traits>& __os, _Setw __f)
 
  237       __os.width(__f._M_n);
 
  241 #if __cplusplus >= 201103L 
  243   template<
typename _MoneyT>
 
  244     struct _Get_money { _MoneyT& _M_mon; 
bool _M_intl; };
 
  254   template<
typename _MoneyT>
 
  255     inline _Get_money<_MoneyT>
 
  257     { 
return { __mon, __intl }; }
 
  259   template<
typename _CharT, 
typename _Traits, 
typename _MoneyT>
 
  260     basic_istream<_CharT, _Traits>&
 
  261     operator>>(basic_istream<_CharT, _Traits>& __is, _Get_money<_MoneyT> __f)
 
  263       typename basic_istream<_CharT, _Traits>::sentry __cerb(__is, 
false);
 
  269           typedef istreambuf_iterator<_CharT, _Traits>   _Iter;
 
  270           typedef money_get<_CharT, _Iter>               _MoneyGet;
 
  272           const _MoneyGet& __mg = use_facet<_MoneyGet>(__is.getloc());
 
  273           __mg.get(_Iter(__is.rdbuf()), _Iter(), __f._M_intl,
 
  274                __is, __err, __f._M_mon);
 
  279           __throw_exception_again;
 
  284         __is.setstate(__err);
 
  290   template<
typename _MoneyT>
 
  291     struct _Put_money { 
const _MoneyT& _M_mon; 
bool _M_intl; };
 
  301   template<
typename _MoneyT>
 
  302     inline _Put_money<_MoneyT>
 
  304     { 
return { __mon, __intl }; }
 
  306   template<
typename _CharT, 
typename _Traits, 
typename _MoneyT>
 
  307     basic_ostream<_CharT, _Traits>& 
 
  308     operator<<(basic_ostream<_CharT, _Traits>& __os, _Put_money<_MoneyT> __f)
 
  310       typename basic_ostream<_CharT, _Traits>::sentry __cerb(__os);
 
  316           typedef ostreambuf_iterator<_CharT, _Traits>   _Iter;
 
  317           typedef money_put<_CharT, _Iter>               _MoneyPut;
 
  319           const _MoneyPut& __mp = use_facet<_MoneyPut>(__os.getloc());
 
  320           if (__mp.put(_Iter(__os.rdbuf()), __f._M_intl, __os,
 
  321                __os.fill(), __f._M_mon).failed())
 
  327           __throw_exception_again;
 
  332         __os.setstate(__err);
 
  337 #if __cplusplus > 201103L 
  339 _GLIBCXX_END_NAMESPACE_VERSION
 
  341   _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
  347     template<
typename _String, 
typename _CharT>
 
  348       struct _Quoted_string
 
  350     static_assert(is_reference<_String>::value
 
  351            || is_pointer<_String>::value,
 
  352               "String type must be pointer or reference");
 
  354     _Quoted_string(_String __str, _CharT __del, _CharT __esc)
 
  355     : _M_string(__str), _M_delim{__del}, _M_escape{__esc}
 
  359     operator=(_Quoted_string&) = 
delete;
 
  370     template<
typename _CharT, 
typename _Traits>
 
  372       operator<<(std::basic_ostream<_CharT, _Traits>& __os,
 
  373          const _Quoted_string<const _CharT*, _CharT>& __str)
 
  375     __os << __str._M_delim;
 
  376     for (
const _CharT* __c = __str._M_string; *__c; ++__c)
 
  378         if (*__c == __str._M_delim || *__c == __str._M_escape)
 
  379           __os << __str._M_escape;
 
  382     __os << __str._M_delim;
 
  391     template<
typename _CharT, 
typename _Traits, 
typename _String>
 
  393       operator<<(std::basic_ostream<_CharT, _Traits>& __os,
 
  394          const _Quoted_string<_String, _CharT>& __str)
 
  396     __os << __str._M_delim;
 
  397     for (
auto& __c : __str._M_string)
 
  399         if (__c == __str._M_delim || __c == __str._M_escape)
 
  400           __os << __str._M_escape;
 
  403     __os << __str._M_delim;
 
  412     template<
typename _CharT, 
typename _Traits, 
typename _Alloc>
 
  415          const _Quoted_string<basic_string<_CharT, _Traits, _Alloc>&,
 
  418     __str._M_string.clear();
 
  424     if (__c != __str._M_delim)
 
  427         __is >> __str._M_string;
 
  430     std::ios_base::fmtflags __flags
 
  437         if (__c == __str._M_escape)
 
  443         else if (__c == __str._M_delim)
 
  445         __str._M_string += __c;
 
  452   _GLIBCXX_END_NAMESPACE_VERSION
 
  454 _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
  462   template<
typename _CharT>
 
  464     quoted(
const _CharT* __string,
 
  465        _CharT __delim = _CharT(
'"'), _CharT __escape = _CharT(
'\\'))
 
  467       return __detail::_Quoted_string<const _CharT*, _CharT>(__string, __delim,
 
  471   template<
typename _CharT, 
typename _Traits, 
typename _Alloc>
 
  473     quoted(
const basic_string<_CharT, _Traits, _Alloc>& __string,
 
  474        _CharT __delim = _CharT(
'"'), _CharT __escape = _CharT(
'\\'))
 
  476       return __detail::_Quoted_string<
 
  477             const basic_string<_CharT, _Traits, _Alloc>&, _CharT>(
 
  478                 __string, __delim, __escape);
 
  481   template<
typename _CharT, 
typename _Traits, 
typename _Alloc>
 
  483     quoted(basic_string<_CharT, _Traits, _Alloc>& __string,
 
  484        _CharT __delim = _CharT(
'"'), _CharT __escape = _CharT(
'\\'))
 
  486       return __detail::_Quoted_string<
 
  487             basic_string<_CharT, _Traits, _Alloc>&, _CharT>(
 
  488                 __string, __delim, __escape);
 
  491 #endif // __cplusplus > 201103L 
  493 #endif // __cplusplus >= 201103L 
  498 #if _GLIBCXX_EXTERN_TEMPLATE 
  499   extern template ostream& operator<<(ostream&, _Setfill<char>);
 
  512 #ifdef _GLIBCXX_USE_WCHAR_T 
  513   extern template wostream& operator<<(wostream&, _Setfill<wchar_t>);
 
  528 _GLIBCXX_END_NAMESPACE_VERSION
 
__istream_type & unget()
Unextracting the previous character. 
 
bool good() const 
Fast error checking. 
 
static const fmtflags basefield
A mask of dec|oct|hex. Useful for the 2-arg form of setf. 
 
_Ios_Iostate iostate
This is a bitmask type. 
 
_Setbase setbase(int __base)
Manipulator for setf. 
 
_Ios_Fmtflags fmtflags
This is a bitmask type. 
 
fmtflags setf(fmtflags __fmtfl)
Setting new format flags. 
 
basic_istream< wchar_t > wistream
Base class for wchar_t input streams. 
 
Template class basic_istream. 
 
basic_ostream< wchar_t > wostream
Base class for wchar_t output streams. 
 
static const iostate goodbit
Indicates all is well. 
 
_Put_money< _MoneyT > put_money(const _MoneyT &__mon, bool __intl=false)
Extended manipulator for inserting money. 
 
static const iostate badbit
Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error fro...
 
static const fmtflags oct
Converts integer input or generates integer output in octal base. 
 
static const fmtflags dec
Converts integer input or generates integer output in decimal base. 
 
bitset< _Nb > operator<<(size_t __position) const noexcept
Self-explanatory. 
 
_Setfill< _CharT > setfill(_CharT __c)
Manipulator for fill. 
 
basic_istream< char > istream
Base class for char input streams. 
 
_Setprecision setprecision(int __n)
Manipulator for precision. 
 
Thrown as part of forced unwinding.A magic placeholder class that can be caught by reference to recog...
 
_Resetiosflags resetiosflags(ios_base::fmtflags __mask)
Manipulator for setf. 
 
_Get_money< _MoneyT > get_money(_MoneyT &__mon, bool __intl=false)
Extended manipulator for extracting money. 
 
ios_base & skipws(ios_base &__base)
Calls base.setf(ios_base::skipws). 
 
_Setw setw(int __n)
Manipulator for width. 
 
basic_ostream< char > ostream
Base class for char output streams. 
 
bitset< _Nb > operator>>(size_t __position) const noexcept
Self-explanatory. 
 
static const fmtflags hex
Converts integer input or generates integer output in hexadecimal base. 
 
fmtflags flags() const 
Access to format flags. 
 
_Siter_base< _Iterator >::iterator_type __base(_Iterator __it)
 
_Setiosflags setiosflags(ios_base::fmtflags __mask)
Manipulator for setf.