| // -*- C++ -*- | 
 | //===----------------------------------------------------------------------===// | 
 | // | 
 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | 
 | // See https://llvm.org/LICENSE.txt for license information. | 
 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | 
 | // | 
 | //===----------------------------------------------------------------------===// | 
 |  | 
 | #ifndef _LIBCPP_IOMANIP | 
 | #define _LIBCPP_IOMANIP | 
 |  | 
 | /* | 
 |     iomanip synopsis | 
 |  | 
 | namespace std { | 
 |  | 
 | // types T1, T2, ... are unspecified implementation types | 
 | T1 resetiosflags(ios_base::fmtflags mask); | 
 | T2 setiosflags (ios_base::fmtflags mask); | 
 | T3 setbase(int base); | 
 | template<charT> T4 setfill(charT c); | 
 | T5 setprecision(int n); | 
 | T6 setw(int n); | 
 | template <class moneyT> T7 get_money(moneyT& mon, bool intl = false); | 
 | template <class charT, class moneyT> T8 put_money(const moneyT& mon, bool intl = false); | 
 | template <class charT> T9 get_time(struct tm* tmb, const charT* fmt); | 
 | template <class charT> T10 put_time(const struct tm* tmb, const charT* fmt); | 
 |  | 
 | template <class charT> | 
 |   T11 quoted(const charT* s, charT delim=charT('"'), charT escape=charT('\\')); // C++14 | 
 |  | 
 | template <class charT, class traits, class Allocator> | 
 |   T12 quoted(const basic_string<charT, traits, Allocator>& s, | 
 |              charT delim=charT('"'), charT escape=charT('\\')); // C++14 | 
 |  | 
 | template <class charT, class traits, class Allocator> | 
 |   T13 quoted(basic_string<charT, traits, Allocator>& s, | 
 |              charT delim=charT('"'), charT escape=charT('\\')); // C++14 | 
 |  | 
 | }  // std | 
 |  | 
 | */ | 
 |  | 
 | #if __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS) | 
 | #  include <__cxx03/iomanip> | 
 | #else | 
 | #  include <__config> | 
 |  | 
 | #  if _LIBCPP_HAS_LOCALIZATION | 
 |  | 
 | #    include <__iterator/istreambuf_iterator.h> | 
 | #    include <__locale_dir/money.h> | 
 | #    include <__locale_dir/time.h> | 
 | #    include <__ostream/put_character_sequence.h> | 
 | #    include <ios> | 
 | #    include <iosfwd> | 
 | #    include <version> | 
 |  | 
 | #    if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) | 
 | #      pragma GCC system_header | 
 | #    endif | 
 |  | 
 | _LIBCPP_BEGIN_NAMESPACE_STD | 
 |  | 
 | // resetiosflags | 
 |  | 
 | class __iom_t1 { | 
 |   ios_base::fmtflags __mask_; | 
 |  | 
 | public: | 
 |   _LIBCPP_HIDE_FROM_ABI explicit __iom_t1(ios_base::fmtflags __m) : __mask_(__m) {} | 
 |  | 
 |   template <class _CharT, class _Traits> | 
 |   friend _LIBCPP_HIDE_FROM_ABI basic_istream<_CharT, _Traits>& | 
 |   operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t1& __x) { | 
 |     __is.unsetf(__x.__mask_); | 
 |     return __is; | 
 |   } | 
 |  | 
 |   template <class _CharT, class _Traits> | 
 |   friend _LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>& | 
 |   operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t1& __x) { | 
 |     __os.unsetf(__x.__mask_); | 
 |     return __os; | 
 |   } | 
 | }; | 
 |  | 
 | inline _LIBCPP_HIDE_FROM_ABI __iom_t1 resetiosflags(ios_base::fmtflags __mask) { return __iom_t1(__mask); } | 
 |  | 
 | // setiosflags | 
 |  | 
 | class __iom_t2 { | 
 |   ios_base::fmtflags __mask_; | 
 |  | 
 | public: | 
 |   _LIBCPP_HIDE_FROM_ABI explicit __iom_t2(ios_base::fmtflags __m) : __mask_(__m) {} | 
 |  | 
 |   template <class _CharT, class _Traits> | 
 |   friend _LIBCPP_HIDE_FROM_ABI basic_istream<_CharT, _Traits>& | 
 |   operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t2& __x) { | 
 |     __is.setf(__x.__mask_); | 
 |     return __is; | 
 |   } | 
 |  | 
 |   template <class _CharT, class _Traits> | 
 |   friend _LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>& | 
 |   operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t2& __x) { | 
 |     __os.setf(__x.__mask_); | 
 |     return __os; | 
 |   } | 
 | }; | 
 |  | 
 | inline _LIBCPP_HIDE_FROM_ABI __iom_t2 setiosflags(ios_base::fmtflags __mask) { return __iom_t2(__mask); } | 
 |  | 
 | // setbase | 
 |  | 
 | class __iom_t3 { | 
 |   int __base_; | 
 |  | 
 | public: | 
 |   _LIBCPP_HIDE_FROM_ABI explicit __iom_t3(int __b) : __base_(__b) {} | 
 |  | 
 |   template <class _CharT, class _Traits> | 
 |   friend _LIBCPP_HIDE_FROM_ABI basic_istream<_CharT, _Traits>& | 
 |   operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t3& __x) { | 
 |     __is.setf(__x.__base_ == 8    ? ios_base::oct | 
 |               : __x.__base_ == 10 ? ios_base::dec | 
 |               : __x.__base_ == 16 ? ios_base::hex | 
 |                                   : ios_base::fmtflags(0), | 
 |               ios_base::basefield); | 
 |     return __is; | 
 |   } | 
 |  | 
 |   template <class _CharT, class _Traits> | 
 |   friend _LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>& | 
 |   operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t3& __x) { | 
 |     __os.setf(__x.__base_ == 8    ? ios_base::oct | 
 |               : __x.__base_ == 10 ? ios_base::dec | 
 |               : __x.__base_ == 16 ? ios_base::hex | 
 |                                   : ios_base::fmtflags(0), | 
 |               ios_base::basefield); | 
 |     return __os; | 
 |   } | 
 | }; | 
 |  | 
 | inline _LIBCPP_HIDE_FROM_ABI __iom_t3 setbase(int __base) { return __iom_t3(__base); } | 
 |  | 
 | // setfill | 
 |  | 
 | template <class _CharT> | 
 | class __iom_t4 { | 
 |   _CharT __fill_; | 
 |  | 
 | public: | 
 |   _LIBCPP_HIDE_FROM_ABI explicit __iom_t4(_CharT __c) : __fill_(__c) {} | 
 |  | 
 |   template <class _Traits> | 
 |   friend _LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>& | 
 |   operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t4& __x) { | 
 |     __os.fill(__x.__fill_); | 
 |     return __os; | 
 |   } | 
 | }; | 
 |  | 
 | template <class _CharT> | 
 | inline _LIBCPP_HIDE_FROM_ABI __iom_t4<_CharT> setfill(_CharT __c) { | 
 |   return __iom_t4<_CharT>(__c); | 
 | } | 
 |  | 
 | // setprecision | 
 |  | 
 | class __iom_t5 { | 
 |   int __n_; | 
 |  | 
 | public: | 
 |   _LIBCPP_HIDE_FROM_ABI explicit __iom_t5(int __n) : __n_(__n) {} | 
 |  | 
 |   template <class _CharT, class _Traits> | 
 |   friend _LIBCPP_HIDE_FROM_ABI basic_istream<_CharT, _Traits>& | 
 |   operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t5& __x) { | 
 |     __is.precision(__x.__n_); | 
 |     return __is; | 
 |   } | 
 |  | 
 |   template <class _CharT, class _Traits> | 
 |   friend _LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>& | 
 |   operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t5& __x) { | 
 |     __os.precision(__x.__n_); | 
 |     return __os; | 
 |   } | 
 | }; | 
 |  | 
 | inline _LIBCPP_HIDE_FROM_ABI __iom_t5 setprecision(int __n) { return __iom_t5(__n); } | 
 |  | 
 | // setw | 
 |  | 
 | class __iom_t6 { | 
 |   int __n_; | 
 |  | 
 | public: | 
 |   _LIBCPP_HIDE_FROM_ABI explicit __iom_t6(int __n) : __n_(__n) {} | 
 |  | 
 |   template <class _CharT, class _Traits> | 
 |   friend _LIBCPP_HIDE_FROM_ABI basic_istream<_CharT, _Traits>& | 
 |   operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t6& __x) { | 
 |     __is.width(__x.__n_); | 
 |     return __is; | 
 |   } | 
 |  | 
 |   template <class _CharT, class _Traits> | 
 |   friend _LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>& | 
 |   operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t6& __x) { | 
 |     __os.width(__x.__n_); | 
 |     return __os; | 
 |   } | 
 | }; | 
 |  | 
 | inline _LIBCPP_HIDE_FROM_ABI __iom_t6 setw(int __n) { return __iom_t6(__n); } | 
 |  | 
 | // get_money | 
 |  | 
 | template <class _MoneyT> | 
 | class __iom_t7; | 
 |  | 
 | template <class _CharT, class _Traits, class _MoneyT> | 
 | _LIBCPP_HIDE_FROM_ABI basic_istream<_CharT, _Traits>& | 
 | operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t7<_MoneyT>& __x); | 
 |  | 
 | template <class _MoneyT> | 
 | class __iom_t7 { | 
 |   _MoneyT& __mon_; | 
 |   bool __intl_; | 
 |  | 
 | public: | 
 |   _LIBCPP_HIDE_FROM_ABI __iom_t7(_MoneyT& __mon, bool __intl) : __mon_(__mon), __intl_(__intl) {} | 
 |  | 
 |   template <class _CharT, class _Traits, class _Mp> | 
 |   friend basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t7<_Mp>& __x); | 
 | }; | 
 |  | 
 | template <class _CharT, class _Traits, class _MoneyT> | 
 | _LIBCPP_HIDE_FROM_ABI basic_istream<_CharT, _Traits>& | 
 | operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t7<_MoneyT>& __x) { | 
 | #    if _LIBCPP_HAS_EXCEPTIONS | 
 |   try { | 
 | #    endif // _LIBCPP_HAS_EXCEPTIONS | 
 |     typename basic_istream<_CharT, _Traits>::sentry __s(__is); | 
 |     if (__s) { | 
 |       typedef istreambuf_iterator<_CharT, _Traits> _Ip; | 
 |       typedef money_get<_CharT, _Ip> _Fp; | 
 |       ios_base::iostate __err = ios_base::goodbit; | 
 |       const _Fp& __mf         = std::use_facet<_Fp>(__is.getloc()); | 
 |       __mf.get(_Ip(__is), _Ip(), __x.__intl_, __is, __err, __x.__mon_); | 
 |       __is.setstate(__err); | 
 |     } | 
 | #    if _LIBCPP_HAS_EXCEPTIONS | 
 |   } catch (...) { | 
 |     __is.__set_badbit_and_consider_rethrow(); | 
 |   } | 
 | #    endif // _LIBCPP_HAS_EXCEPTIONS | 
 |   return __is; | 
 | } | 
 |  | 
 | template <class _MoneyT> | 
 | inline _LIBCPP_HIDE_FROM_ABI __iom_t7<_MoneyT> get_money(_MoneyT& __mon, bool __intl = false) { | 
 |   return __iom_t7<_MoneyT>(__mon, __intl); | 
 | } | 
 |  | 
 | // put_money | 
 |  | 
 | template <class _MoneyT> | 
 | class __iom_t8; | 
 |  | 
 | template <class _CharT, class _Traits, class _MoneyT> | 
 | _LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>& | 
 | operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t8<_MoneyT>& __x); | 
 |  | 
 | template <class _MoneyT> | 
 | class __iom_t8 { | 
 |   const _MoneyT& __mon_; | 
 |   bool __intl_; | 
 |  | 
 | public: | 
 |   _LIBCPP_HIDE_FROM_ABI __iom_t8(const _MoneyT& __mon, bool __intl) : __mon_(__mon), __intl_(__intl) {} | 
 |  | 
 |   template <class _CharT, class _Traits, class _Mp> | 
 |   friend basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t8<_Mp>& __x); | 
 | }; | 
 |  | 
 | template <class _CharT, class _Traits, class _MoneyT> | 
 | _LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>& | 
 | operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t8<_MoneyT>& __x) { | 
 | #    if _LIBCPP_HAS_EXCEPTIONS | 
 |   try { | 
 | #    endif // _LIBCPP_HAS_EXCEPTIONS | 
 |     typename basic_ostream<_CharT, _Traits>::sentry __s(__os); | 
 |     if (__s) { | 
 |       typedef ostreambuf_iterator<_CharT, _Traits> _Op; | 
 |       typedef money_put<_CharT, _Op> _Fp; | 
 |       const _Fp& __mf = std::use_facet<_Fp>(__os.getloc()); | 
 |       if (__mf.put(_Op(__os), __x.__intl_, __os, __os.fill(), __x.__mon_).failed()) | 
 |         __os.setstate(ios_base::badbit); | 
 |     } | 
 | #    if _LIBCPP_HAS_EXCEPTIONS | 
 |   } catch (...) { | 
 |     __os.__set_badbit_and_consider_rethrow(); | 
 |   } | 
 | #    endif // _LIBCPP_HAS_EXCEPTIONS | 
 |   return __os; | 
 | } | 
 |  | 
 | template <class _MoneyT> | 
 | inline _LIBCPP_HIDE_FROM_ABI __iom_t8<_MoneyT> put_money(const _MoneyT& __mon, bool __intl = false) { | 
 |   return __iom_t8<_MoneyT>(__mon, __intl); | 
 | } | 
 |  | 
 | // get_time | 
 |  | 
 | template <class _CharT> | 
 | class __iom_t9; | 
 |  | 
 | template <class _CharT, class _Traits> | 
 | _LIBCPP_HIDE_FROM_ABI basic_istream<_CharT, _Traits>& | 
 | operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t9<_CharT>& __x); | 
 |  | 
 | template <class _CharT> | 
 | class __iom_t9 { | 
 |   tm* __tm_; | 
 |   const _CharT* __fmt_; | 
 |  | 
 | public: | 
 |   _LIBCPP_HIDE_FROM_ABI __iom_t9(tm* __tm, const _CharT* __fmt) : __tm_(__tm), __fmt_(__fmt) {} | 
 |  | 
 |   template <class _Cp, class _Traits> | 
 |   friend basic_istream<_Cp, _Traits>& operator>>(basic_istream<_Cp, _Traits>& __is, const __iom_t9<_Cp>& __x); | 
 | }; | 
 |  | 
 | template <class _CharT, class _Traits> | 
 | _LIBCPP_HIDE_FROM_ABI basic_istream<_CharT, _Traits>& | 
 | operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t9<_CharT>& __x) { | 
 | #    if _LIBCPP_HAS_EXCEPTIONS | 
 |   try { | 
 | #    endif // _LIBCPP_HAS_EXCEPTIONS | 
 |     typename basic_istream<_CharT, _Traits>::sentry __s(__is); | 
 |     if (__s) { | 
 |       typedef istreambuf_iterator<_CharT, _Traits> _Ip; | 
 |       typedef time_get<_CharT, _Ip> _Fp; | 
 |       ios_base::iostate __err = ios_base::goodbit; | 
 |       const _Fp& __tf         = std::use_facet<_Fp>(__is.getloc()); | 
 |       __tf.get(_Ip(__is), _Ip(), __is, __err, __x.__tm_, __x.__fmt_, __x.__fmt_ + _Traits::length(__x.__fmt_)); | 
 |       __is.setstate(__err); | 
 |     } | 
 | #    if _LIBCPP_HAS_EXCEPTIONS | 
 |   } catch (...) { | 
 |     __is.__set_badbit_and_consider_rethrow(); | 
 |   } | 
 | #    endif // _LIBCPP_HAS_EXCEPTIONS | 
 |   return __is; | 
 | } | 
 |  | 
 | template <class _CharT> | 
 | inline _LIBCPP_HIDE_FROM_ABI __iom_t9<_CharT> get_time(tm* __tm, const _CharT* __fmt) { | 
 |   return __iom_t9<_CharT>(__tm, __fmt); | 
 | } | 
 |  | 
 | // put_time | 
 |  | 
 | template <class _CharT> | 
 | class __iom_t10; | 
 |  | 
 | template <class _CharT, class _Traits> | 
 | _LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>& | 
 | operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t10<_CharT>& __x); | 
 |  | 
 | template <class _CharT> | 
 | class __iom_t10 { | 
 |   const tm* __tm_; | 
 |   const _CharT* __fmt_; | 
 |  | 
 | public: | 
 |   _LIBCPP_HIDE_FROM_ABI __iom_t10(const tm* __tm, const _CharT* __fmt) : __tm_(__tm), __fmt_(__fmt) {} | 
 |  | 
 |   template <class _Cp, class _Traits> | 
 |   friend basic_ostream<_Cp, _Traits>& operator<<(basic_ostream<_Cp, _Traits>& __os, const __iom_t10<_Cp>& __x); | 
 | }; | 
 |  | 
 | template <class _CharT, class _Traits> | 
 | _LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>& | 
 | operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t10<_CharT>& __x) { | 
 | #    if _LIBCPP_HAS_EXCEPTIONS | 
 |   try { | 
 | #    endif // _LIBCPP_HAS_EXCEPTIONS | 
 |     typename basic_ostream<_CharT, _Traits>::sentry __s(__os); | 
 |     if (__s) { | 
 |       typedef ostreambuf_iterator<_CharT, _Traits> _Op; | 
 |       typedef time_put<_CharT, _Op> _Fp; | 
 |       const _Fp& __tf = std::use_facet<_Fp>(__os.getloc()); | 
 |       if (__tf.put(_Op(__os), __os, __os.fill(), __x.__tm_, __x.__fmt_, __x.__fmt_ + _Traits::length(__x.__fmt_)) | 
 |               .failed()) | 
 |         __os.setstate(ios_base::badbit); | 
 |     } | 
 | #    if _LIBCPP_HAS_EXCEPTIONS | 
 |   } catch (...) { | 
 |     __os.__set_badbit_and_consider_rethrow(); | 
 |   } | 
 | #    endif // _LIBCPP_HAS_EXCEPTIONS | 
 |   return __os; | 
 | } | 
 |  | 
 | template <class _CharT> | 
 | inline _LIBCPP_HIDE_FROM_ABI __iom_t10<_CharT> put_time(const tm* __tm, const _CharT* __fmt) { | 
 |   return __iom_t10<_CharT>(__tm, __fmt); | 
 | } | 
 |  | 
 | template <class _CharT, class _Traits> | 
 | _LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>& __quoted_output( | 
 |     basic_ostream<_CharT, _Traits>& __os, | 
 |     const _CharT* __first, | 
 |     const _CharT* __last, | 
 |     _CharT __delim, | 
 |     _CharT __escape) { | 
 |   basic_string<_CharT, _Traits> __str; | 
 |   __str.push_back(__delim); | 
 |   for (; __first != __last; ++__first) { | 
 |     if (_Traits::eq(*__first, __escape) || _Traits::eq(*__first, __delim)) | 
 |       __str.push_back(__escape); | 
 |     __str.push_back(*__first); | 
 |   } | 
 |   __str.push_back(__delim); | 
 |   return std::__put_character_sequence(__os, __str.data(), __str.size()); | 
 | } | 
 |  | 
 | template <class _CharT, class _Traits, class _String> | 
 | _LIBCPP_HIDE_FROM_ABI basic_istream<_CharT, _Traits>& | 
 | __quoted_input(basic_istream<_CharT, _Traits>& __is, _String& __string, _CharT __delim, _CharT __escape) { | 
 |   __string.clear(); | 
 |   _CharT __c; | 
 |   __is >> __c; | 
 |   if (__is.fail()) | 
 |     return __is; | 
 |  | 
 |   if (!_Traits::eq(__c, __delim)) { | 
 |     // no delimiter, read the whole string | 
 |     __is.unget(); | 
 |     __is >> __string; | 
 |     return __is; | 
 |   } | 
 |  | 
 |   __save_flags<_CharT, _Traits> __sf(__is); | 
 |   std::noskipws(__is); | 
 |   while (true) { | 
 |     __is >> __c; | 
 |     if (__is.fail()) | 
 |       break; | 
 |     if (_Traits::eq(__c, __escape)) { | 
 |       __is >> __c; | 
 |       if (__is.fail()) | 
 |         break; | 
 |     } else if (_Traits::eq(__c, __delim)) | 
 |       break; | 
 |     __string.push_back(__c); | 
 |   } | 
 |   return __is; | 
 | } | 
 |  | 
 | template <class _CharT, class _Traits> | 
 | struct _LIBCPP_HIDDEN __quoted_output_proxy { | 
 |   const _CharT* __first_; | 
 |   const _CharT* __last_; | 
 |   _CharT __delim_; | 
 |   _CharT __escape_; | 
 |  | 
 |   _LIBCPP_HIDE_FROM_ABI explicit __quoted_output_proxy(const _CharT* __f, const _CharT* __l, _CharT __d, _CharT __e) | 
 |       : __first_(__f), __last_(__l), __delim_(__d), __escape_(__e) {} | 
 |  | 
 |   template <class _T2, __enable_if_t<_IsSame<_Traits, void>::value || _IsSame<_Traits, _T2>::value, int> = 0> | 
 |   friend _LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _T2>& | 
 |   operator<<(basic_ostream<_CharT, _T2>& __os, const __quoted_output_proxy& __p) { | 
 |     return std::__quoted_output(__os, __p.__first_, __p.__last_, __p.__delim_, __p.__escape_); | 
 |   } | 
 | }; | 
 |  | 
 | template <class _CharT, class _Traits, class _Allocator> | 
 | struct _LIBCPP_HIDDEN __quoted_proxy { | 
 |   basic_string<_CharT, _Traits, _Allocator>& __string_; | 
 |   _CharT __delim_; | 
 |   _CharT __escape_; | 
 |  | 
 |   _LIBCPP_HIDE_FROM_ABI explicit __quoted_proxy(basic_string<_CharT, _Traits, _Allocator>& __s, _CharT __d, _CharT __e) | 
 |       : __string_(__s), __delim_(__d), __escape_(__e) {} | 
 |  | 
 |   friend _LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>& | 
 |   operator<<(basic_ostream<_CharT, _Traits>& __os, const __quoted_proxy& __p) { | 
 |     return std::__quoted_output( | 
 |         __os, __p.__string_.data(), __p.__string_.data() + __p.__string_.size(), __p.__delim_, __p.__escape_); | 
 |   } | 
 |  | 
 |   friend _LIBCPP_HIDE_FROM_ABI basic_istream<_CharT, _Traits>& | 
 |   operator>>(basic_istream<_CharT, _Traits>& __is, const __quoted_proxy& __p) { | 
 |     return std::__quoted_input(__is, __p.__string_, __p.__delim_, __p.__escape_); | 
 |   } | 
 | }; | 
 |  | 
 | template <class _CharT, class _Traits, class _Allocator> | 
 | _LIBCPP_HIDE_FROM_ABI __quoted_output_proxy<_CharT, _Traits> | 
 | __quoted(const basic_string<_CharT, _Traits, _Allocator>& __s, | 
 |          _CharT __delim  = _CharT('"'), | 
 |          _CharT __escape = _CharT('\\')) { | 
 |   return __quoted_output_proxy<_CharT, _Traits>(__s.data(), __s.data() + __s.size(), __delim, __escape); | 
 | } | 
 |  | 
 | template <class _CharT, class _Traits, class _Allocator> | 
 | _LIBCPP_HIDE_FROM_ABI __quoted_proxy<_CharT, _Traits, _Allocator> | 
 | __quoted(basic_string<_CharT, _Traits, _Allocator>& __s, _CharT __delim = _CharT('"'), _CharT __escape = _CharT('\\')) { | 
 |   return __quoted_proxy<_CharT, _Traits, _Allocator>(__s, __delim, __escape); | 
 | } | 
 |  | 
 | #    if _LIBCPP_STD_VER >= 14 | 
 |  | 
 | template <class _CharT> | 
 | _LIBCPP_HIDE_FROM_ABI auto quoted(const _CharT* __s, _CharT __delim = _CharT('"'), _CharT __escape = _CharT('\\')) { | 
 |   const _CharT* __end = __s; | 
 |   while (*__end) | 
 |     ++__end; | 
 |   return __quoted_output_proxy<_CharT, void>(__s, __end, __delim, __escape); | 
 | } | 
 |  | 
 | template <class _CharT, class _Traits, class _Allocator> | 
 | _LIBCPP_HIDE_FROM_ABI auto | 
 | quoted(const basic_string<_CharT, _Traits, _Allocator>& __s, | 
 |        _CharT __delim  = _CharT('"'), | 
 |        _CharT __escape = _CharT('\\')) { | 
 |   return __quoted_output_proxy<_CharT, _Traits>(__s.data(), __s.data() + __s.size(), __delim, __escape); | 
 | } | 
 |  | 
 | template <class _CharT, class _Traits, class _Allocator> | 
 | _LIBCPP_HIDE_FROM_ABI auto | 
 | quoted(basic_string<_CharT, _Traits, _Allocator>& __s, _CharT __delim = _CharT('"'), _CharT __escape = _CharT('\\')) { | 
 |   return __quoted_proxy<_CharT, _Traits, _Allocator>(__s, __delim, __escape); | 
 | } | 
 |  | 
 | template <class _CharT, class _Traits> | 
 | _LIBCPP_HIDE_FROM_ABI auto | 
 | quoted(basic_string_view<_CharT, _Traits> __sv, _CharT __delim = _CharT('"'), _CharT __escape = _CharT('\\')) { | 
 |   return __quoted_output_proxy<_CharT, _Traits>(__sv.data(), __sv.data() + __sv.size(), __delim, __escape); | 
 | } | 
 |  | 
 | #    endif // _LIBCPP_STD_VER >= 14 | 
 |  | 
 | _LIBCPP_END_NAMESPACE_STD | 
 |  | 
 | #  endif // _LIBCPP_HAS_LOCALIZATION | 
 |  | 
 | #  if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 | 
 | #    include <array> | 
 | #    include <bitset> | 
 | #    include <deque> | 
 | #    include <format> | 
 | #    include <functional> | 
 | #    include <istream> | 
 | #    include <ostream> | 
 | #    include <print> | 
 | #    include <queue> | 
 | #    include <stack> | 
 | #    include <unordered_map> | 
 | #    include <vector> | 
 | #  endif | 
 |  | 
 | #  if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 23 | 
 | #    include <locale> | 
 | #  endif | 
 |  | 
 | #endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS) | 
 |  | 
 | #endif // _LIBCPP_IOMANIP |