33#ifndef _GLIBCXX_IOMANIP
34#define _GLIBCXX_IOMANIP 1
36#pragma GCC system_header
42#if __cplusplus >= 201103L
44#if __cplusplus > 201103L
49namespace std _GLIBCXX_VISIBILITY(default)
51_GLIBCXX_BEGIN_NAMESPACE_VERSION
67 {
return { __mask }; }
69 template<
typename _CharT,
typename _Traits>
70 inline basic_istream<_CharT, _Traits>&
71 operator>>(basic_istream<_CharT, _Traits>& __is, _Resetiosflags __f)
77 template<
typename _CharT,
typename _Traits>
97 {
return { __mask }; }
99 template<
typename _CharT,
typename _Traits>
100 inline basic_istream<_CharT, _Traits>&
101 operator>>(basic_istream<_CharT, _Traits>& __is, _Setiosflags __f)
103 __is.setf(__f._M_mask);
107 template<
typename _CharT,
typename _Traits>
111 __os.
setf(__f._M_mask);
116 struct _Setbase {
int _M_base; };
128 {
return { __base }; }
130 template<
typename _CharT,
typename _Traits>
131 inline basic_istream<_CharT, _Traits>&
132 operator>>(basic_istream<_CharT, _Traits>& __is, _Setbase __f)
141 template<
typename _CharT,
typename _Traits>
153 template<
typename _CharT>
154 struct _Setfill { _CharT _M_c; };
163 template<
typename _CharT>
164 inline _Setfill<_CharT>
168 template<
typename _CharT,
typename _Traits>
169 inline basic_istream<_CharT, _Traits>&
170 operator>>(basic_istream<_CharT, _Traits>& __is, _Setfill<_CharT> __f)
176 template<
typename _CharT,
typename _Traits>
185 struct _Setprecision {
int _M_n; };
198 template<
typename _CharT,
typename _Traits>
199 inline basic_istream<_CharT, _Traits>&
200 operator>>(basic_istream<_CharT, _Traits>& __is, _Setprecision __f)
202 __is.precision(__f._M_n);
206 template<
typename _CharT,
typename _Traits>
215 struct _Setw {
int _M_n; };
228 template<
typename _CharT,
typename _Traits>
229 inline basic_istream<_CharT, _Traits>&
230 operator>>(basic_istream<_CharT, _Traits>& __is, _Setw __f)
232 __is.width(__f._M_n);
236 template<
typename _CharT,
typename _Traits>
240 __os.
width(__f._M_n);
244#if __cplusplus >= 201103L
246 template<
typename _MoneyT>
247 struct _Get_money { _MoneyT& _M_mon;
bool _M_intl; };
257 template<
typename _MoneyT>
258 inline _Get_money<_MoneyT>
260 {
return { __mon, __intl }; }
262 template<
typename _CharT,
typename _Traits,
typename _MoneyT>
263 basic_istream<_CharT, _Traits>&
264 operator>>(basic_istream<_CharT, _Traits>& __is, _Get_money<_MoneyT> __f)
266 typename basic_istream<_CharT, _Traits>::sentry __cerb(__is,
false);
272 typedef istreambuf_iterator<_CharT, _Traits> _Iter;
273 typedef money_get<_CharT, _Iter> _MoneyGet;
276 __mg.get(_Iter(__is.rdbuf()), _Iter(), __f._M_intl,
277 __is, __err, __f._M_mon);
279 __catch(__cxxabiv1::__forced_unwind&)
282 __throw_exception_again;
287 __is.setstate(__err);
293 template<
typename _MoneyT>
294 struct _Put_money {
const _MoneyT& _M_mon;
bool _M_intl; };
304 template<
typename _MoneyT>
305 inline _Put_money<_MoneyT>
307 {
return { __mon, __intl }; }
309 template<
typename _CharT,
typename _Traits,
typename _MoneyT>
310 basic_ostream<_CharT, _Traits>&
311 operator<<(basic_ostream<_CharT, _Traits>& __os, _Put_money<_MoneyT> __f)
313 typename basic_ostream<_CharT, _Traits>::sentry __cerb(__os);
319 typedef ostreambuf_iterator<_CharT, _Traits> _Iter;
320 typedef money_put<_CharT, _Iter> _MoneyPut;
323 if (__mp.put(_Iter(__os.rdbuf()), __f._M_intl, __os,
324 __os.fill(), __f._M_mon).failed())
327 __catch(__cxxabiv1::__forced_unwind&)
330 __throw_exception_again;
335 __os.setstate(__err);
340 template<
typename _CharT>
343 const std::tm* _M_tmb;
344 const _CharT* _M_fmt;
356 template<
typename _CharT>
357 inline _Put_time<_CharT>
358 put_time(
const std::tm* __tmb,
const _CharT* __fmt)
359 {
return { __tmb, __fmt }; }
361 template<
typename _CharT,
typename _Traits>
362 basic_ostream<_CharT, _Traits>&
363 operator<<(basic_ostream<_CharT, _Traits>& __os, _Put_time<_CharT> __f)
365 typename basic_ostream<_CharT, _Traits>::sentry __cerb(__os);
371 typedef ostreambuf_iterator<_CharT, _Traits> _Iter;
372 typedef time_put<_CharT, _Iter> _TimePut;
374 const _CharT*
const __fmt_end = __f._M_fmt +
375 _Traits::length(__f._M_fmt);
378 if (__mp.put(_Iter(__os.rdbuf()), __os, __os.fill(),
379 __f._M_tmb, __f._M_fmt, __fmt_end).failed())
382 __catch(__cxxabiv1::__forced_unwind&)
385 __throw_exception_again;
390 __os.setstate(__err);
395 template<
typename _CharT>
399 const _CharT* _M_fmt;
411 template<
typename _CharT>
412 inline _Get_time<_CharT>
414 {
return { __tmb, __fmt }; }
416 template<
typename _CharT,
typename _Traits>
417 basic_istream<_CharT, _Traits>&
418 operator>>(basic_istream<_CharT, _Traits>& __is, _Get_time<_CharT> __f)
420 typename basic_istream<_CharT, _Traits>::sentry __cerb(__is,
false);
426 typedef istreambuf_iterator<_CharT, _Traits> _Iter;
427 typedef time_get<_CharT, _Iter> _TimeGet;
429 const _CharT*
const __fmt_end = __f._M_fmt +
430 _Traits::length(__f._M_fmt);
433 __mg.get(_Iter(__is.rdbuf()), _Iter(), __is,
434 __err, __f._M_tmb, __f._M_fmt, __fmt_end);
436 __catch(__cxxabiv1::__forced_unwind&)
439 __throw_exception_again;
444 __is.setstate(__err);
449#if __cplusplus >= 201402L
451#define __cpp_lib_quoted_string_io 201304L
460 template<
typename _CharT>
463 _CharT __delim = _CharT(
'"'), _CharT __escape = _CharT(
'\\'))
469 template<
typename _CharT,
typename _Traits,
typename _Alloc>
471 quoted(
const basic_string<_CharT, _Traits, _Alloc>& __string,
472 _CharT __delim = _CharT(
'"'), _CharT __escape = _CharT(
'\\'))
474 return __detail::_Quoted_string<
475 const basic_string<_CharT, _Traits, _Alloc>&, _CharT>(
476 __string, __delim, __escape);
479 template<
typename _CharT,
typename _Traits,
typename _Alloc>
482 _CharT __delim = _CharT(
'"'), _CharT __escape = _CharT(
'\\'))
486 __string, __delim, __escape);
489#if __cplusplus >= 201703L
492 template<
typename _CharT,
typename _Traits>
495 _CharT __delim = _CharT(
'"'), _CharT __escape = _CharT(
'\\'))
508#if _GLIBCXX_EXTERN_TEMPLATE
522#ifdef _GLIBCXX_USE_WCHAR_T
538_GLIBCXX_END_NAMESPACE_VERSION
basic_ostream< char > ostream
Base class for char output streams.
basic_istream< char > istream
Base class for char input streams.
basic_ostream< wchar_t > wostream
Base class for wchar_t output streams.
basic_istream< wchar_t > wistream
Base class for wchar_t input streams.
class __attribute((__abi_tag__("cxx11"))) failure typedef _Ios_Fmtflags fmtflags
These are thrown to indicate problems with io.
const _Facet & use_facet(const locale &__loc)
Return a facet.
ISO C++ entities toplevel namespace is std.
_Put_time< _CharT > put_time(const std::tm *__tmb, const _CharT *__fmt)
Extended manipulator for formatting time.
_Resetiosflags resetiosflags(ios_base::fmtflags __mask)
Manipulator for setf.
_Get_money< _MoneyT > get_money(_MoneyT &__mon, bool __intl=false)
Extended manipulator for extracting money.
_Setw setw(int __n)
Manipulator for width.
_Setprecision setprecision(int __n)
Manipulator for precision.
_Setfill< _CharT > setfill(_CharT __c)
Manipulator for fill.
std::basic_istream< _CharT, _Traits > & operator>>(std::basic_istream< _CharT, _Traits > &__is, bitset< _Nb > &__x)
Global I/O operators for bitsets.
_Put_money< _MoneyT > put_money(const _MoneyT &__mon, bool __intl=false)
Extended manipulator for inserting money.
_Setiosflags setiosflags(ios_base::fmtflags __mask)
Manipulator for setf.
std::basic_ostream< _CharT, _Traits > & operator<<(std::basic_ostream< _CharT, _Traits > &__os, const bitset< _Nb > &__x)
Global I/O operators for bitsets.
auto quoted(const _CharT *__string, _CharT __delim=_CharT('"'), _CharT __escape = _CharT('\\'))
Manipulator for quoted strings.
_Get_time< _CharT > get_time(std::tm *__tmb, const _CharT *__fmt)
Extended manipulator for extracting time.
_Setbase setbase(int __base)
Manipulator for setf.
char_type fill() const
Retrieves the empty character.
Template class basic_ostream.
A non-owning reference to a string.
Managing sequences of characters and character-like objects.
fmtflags setf(fmtflags __fmtfl)
Setting new format flags.
_Ios_Iostate iostate
This is a bitmask type.
static const fmtflags hex
Converts integer input or generates integer output in hexadecimal base.
static const fmtflags basefield
A mask of dec|oct|hex. Useful for the 2-arg form of setf.
streamsize precision() const
Flags access.
static const fmtflags dec
Converts integer input or generates integer output in decimal base.
static const iostate goodbit
Indicates all is well.
static const iostate badbit
Indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error fro...
streamsize width() const
Flags access.
static const fmtflags oct
Converts integer input or generates integer output in octal base.
Struct for delimited strings.