brintos

brintos / llvm-project-archived public Read only

0
0
Text · 22.5 KiB · 33ade1d Raw
607 lines · plain
1// -*- C++ -*-2//===----------------------------------------------------------------------===//3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9 10#ifndef _LIBCPP_CODECVT11#define _LIBCPP_CODECVT12 13/*14    codecvt synopsis15 16namespace std17{18 19enum codecvt_mode20{21    consume_header = 4,22    generate_header = 2,23    little_endian = 124};25 26template <class Elem, unsigned long Maxcode = 0x10ffff,27          codecvt_mode Mode = (codecvt_mode)0>28class codecvt_utf829    : public codecvt<Elem, char, mbstate_t>30{31    explicit codecvt_utf8(size_t refs = 0);32    ~codecvt_utf8();33};34 35template <class Elem, unsigned long Maxcode = 0x10ffff,36          codecvt_mode Mode = (codecvt_mode)0>37class codecvt_utf1638    : public codecvt<Elem, char, mbstate_t>39{40    explicit codecvt_utf16(size_t refs = 0);41    ~codecvt_utf16();42};43 44template <class Elem, unsigned long Maxcode = 0x10ffff,45          codecvt_mode Mode = (codecvt_mode)0>46class codecvt_utf8_utf1647    : public codecvt<Elem, char, mbstate_t>48{49    explicit codecvt_utf8_utf16(size_t refs = 0);50    ~codecvt_utf8_utf16();51};52 53}  // std54 55*/56 57#if __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)58#  include <__cxx03/codecvt>59#else60#  include <__config>61 62#  if _LIBCPP_HAS_LOCALIZATION63 64#    include <__locale>65#    include <version>66 67#    if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)68#      pragma GCC system_header69#    endif70 71#    if _LIBCPP_STD_VER < 26 || defined(_LIBCPP_BUILDING_LIBRARY) || defined(_LIBCPP_ENABLE_CXX26_REMOVED_CODECVT)72 73_LIBCPP_BEGIN_NAMESPACE_STD74 75enum _LIBCPP_DEPRECATED_IN_CXX17 codecvt_mode { consume_header = 4, generate_header = 2, little_endian = 1 };76 77// codecvt_utf878 79template <class _Elem>80class __codecvt_utf8;81 82#      if _LIBCPP_HAS_WIDE_CHARACTERS83template <>84class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf8<wchar_t> : public codecvt<wchar_t, char, mbstate_t> {85  unsigned long __maxcode_;86  _LIBCPP_SUPPRESS_DEPRECATED_PUSH87  codecvt_mode __mode_;88  _LIBCPP_SUPPRESS_DEPRECATED_POP89 90public:91  typedef wchar_t intern_type;92  typedef char extern_type;93  typedef mbstate_t state_type;94 95  _LIBCPP_SUPPRESS_DEPRECATED_PUSH96  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf8(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)97      : codecvt<wchar_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}98  _LIBCPP_SUPPRESS_DEPRECATED_POP99 100protected:101  result do_out(state_type& __st,102                const intern_type* __frm,103                const intern_type* __frm_end,104                const intern_type*& __frm_nxt,105                extern_type* __to,106                extern_type* __to_end,107                extern_type*& __to_nxt) const override;108  result do_in(state_type& __st,109               const extern_type* __frm,110               const extern_type* __frm_end,111               const extern_type*& __frm_nxt,112               intern_type* __to,113               intern_type* __to_end,114               intern_type*& __to_nxt) const override;115  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;116  int do_encoding() const _NOEXCEPT override;117  bool do_always_noconv() const _NOEXCEPT override;118  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;119  int do_max_length() const _NOEXCEPT override;120};121#      endif // _LIBCPP_HAS_WIDE_CHARACTERS122 123_LIBCPP_SUPPRESS_DEPRECATED_PUSH124template <>125class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf8<char16_t> : public codecvt<char16_t, char, mbstate_t> {126  unsigned long __maxcode_;127  codecvt_mode __mode_;128 129public:130  typedef char16_t intern_type;131  typedef char extern_type;132  typedef mbstate_t state_type;133 134  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf8(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)135      : codecvt<char16_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}136  _LIBCPP_SUPPRESS_DEPRECATED_POP137 138protected:139  result do_out(state_type& __st,140                const intern_type* __frm,141                const intern_type* __frm_end,142                const intern_type*& __frm_nxt,143                extern_type* __to,144                extern_type* __to_end,145                extern_type*& __to_nxt) const override;146  result do_in(state_type& __st,147               const extern_type* __frm,148               const extern_type* __frm_end,149               const extern_type*& __frm_nxt,150               intern_type* __to,151               intern_type* __to_end,152               intern_type*& __to_nxt) const override;153  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;154  int do_encoding() const _NOEXCEPT override;155  bool do_always_noconv() const _NOEXCEPT override;156  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;157  int do_max_length() const _NOEXCEPT override;158};159 160_LIBCPP_SUPPRESS_DEPRECATED_PUSH161template <>162class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf8<char32_t> : public codecvt<char32_t, char, mbstate_t> {163  unsigned long __maxcode_;164  codecvt_mode __mode_;165 166public:167  typedef char32_t intern_type;168  typedef char extern_type;169  typedef mbstate_t state_type;170 171  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf8(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)172      : codecvt<char32_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}173  _LIBCPP_SUPPRESS_DEPRECATED_POP174 175protected:176  result do_out(state_type& __st,177                const intern_type* __frm,178                const intern_type* __frm_end,179                const intern_type*& __frm_nxt,180                extern_type* __to,181                extern_type* __to_end,182                extern_type*& __to_nxt) const override;183  result do_in(state_type& __st,184               const extern_type* __frm,185               const extern_type* __frm_end,186               const extern_type*& __frm_nxt,187               intern_type* __to,188               intern_type* __to_end,189               intern_type*& __to_nxt) const override;190  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;191  int do_encoding() const _NOEXCEPT override;192  bool do_always_noconv() const _NOEXCEPT override;193  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;194  int do_max_length() const _NOEXCEPT override;195};196 197_LIBCPP_SUPPRESS_DEPRECATED_PUSH198template <class _Elem, unsigned long _Maxcode = 0x10ffff, codecvt_mode _Mode = (codecvt_mode)0>199class _LIBCPP_DEPRECATED_IN_CXX17 codecvt_utf8 : public __codecvt_utf8<_Elem> {200public:201  _LIBCPP_HIDE_FROM_ABI explicit codecvt_utf8(size_t __refs = 0) : __codecvt_utf8<_Elem>(__refs, _Maxcode, _Mode) {}202 203  _LIBCPP_HIDE_FROM_ABI ~codecvt_utf8() {}204};205_LIBCPP_SUPPRESS_DEPRECATED_POP206 207// codecvt_utf16208 209template <class _Elem, bool _LittleEndian>210class __codecvt_utf16;211 212#      if _LIBCPP_HAS_WIDE_CHARACTERS213template <>214class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf16<wchar_t, false> : public codecvt<wchar_t, char, mbstate_t> {215  unsigned long __maxcode_;216  _LIBCPP_SUPPRESS_DEPRECATED_PUSH217  codecvt_mode __mode_;218  _LIBCPP_SUPPRESS_DEPRECATED_POP219 220public:221  typedef wchar_t intern_type;222  typedef char extern_type;223  typedef mbstate_t state_type;224 225  _LIBCPP_SUPPRESS_DEPRECATED_PUSH226  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf16(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)227      : codecvt<wchar_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}228  _LIBCPP_SUPPRESS_DEPRECATED_POP229 230protected:231  result do_out(state_type& __st,232                const intern_type* __frm,233                const intern_type* __frm_end,234                const intern_type*& __frm_nxt,235                extern_type* __to,236                extern_type* __to_end,237                extern_type*& __to_nxt) const override;238  result do_in(state_type& __st,239               const extern_type* __frm,240               const extern_type* __frm_end,241               const extern_type*& __frm_nxt,242               intern_type* __to,243               intern_type* __to_end,244               intern_type*& __to_nxt) const override;245  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;246  int do_encoding() const _NOEXCEPT override;247  bool do_always_noconv() const _NOEXCEPT override;248  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;249  int do_max_length() const _NOEXCEPT override;250};251 252template <>253class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf16<wchar_t, true> : public codecvt<wchar_t, char, mbstate_t> {254  unsigned long __maxcode_;255  _LIBCPP_SUPPRESS_DEPRECATED_PUSH256  codecvt_mode __mode_;257  _LIBCPP_SUPPRESS_DEPRECATED_POP258 259public:260  typedef wchar_t intern_type;261  typedef char extern_type;262  typedef mbstate_t state_type;263 264  _LIBCPP_SUPPRESS_DEPRECATED_PUSH265  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf16(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)266      : codecvt<wchar_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}267  _LIBCPP_SUPPRESS_DEPRECATED_POP268 269protected:270  result do_out(state_type& __st,271                const intern_type* __frm,272                const intern_type* __frm_end,273                const intern_type*& __frm_nxt,274                extern_type* __to,275                extern_type* __to_end,276                extern_type*& __to_nxt) const override;277  result do_in(state_type& __st,278               const extern_type* __frm,279               const extern_type* __frm_end,280               const extern_type*& __frm_nxt,281               intern_type* __to,282               intern_type* __to_end,283               intern_type*& __to_nxt) const override;284  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;285  int do_encoding() const _NOEXCEPT override;286  bool do_always_noconv() const _NOEXCEPT override;287  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;288  int do_max_length() const _NOEXCEPT override;289};290#      endif // _LIBCPP_HAS_WIDE_CHARACTERS291 292_LIBCPP_SUPPRESS_DEPRECATED_PUSH293template <>294class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf16<char16_t, false> : public codecvt<char16_t, char, mbstate_t> {295  unsigned long __maxcode_;296  codecvt_mode __mode_;297 298public:299  typedef char16_t intern_type;300  typedef char extern_type;301  typedef mbstate_t state_type;302 303  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf16(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)304      : codecvt<char16_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}305  _LIBCPP_SUPPRESS_DEPRECATED_POP306 307protected:308  result do_out(state_type& __st,309                const intern_type* __frm,310                const intern_type* __frm_end,311                const intern_type*& __frm_nxt,312                extern_type* __to,313                extern_type* __to_end,314                extern_type*& __to_nxt) const override;315  result do_in(state_type& __st,316               const extern_type* __frm,317               const extern_type* __frm_end,318               const extern_type*& __frm_nxt,319               intern_type* __to,320               intern_type* __to_end,321               intern_type*& __to_nxt) const override;322  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;323  int do_encoding() const _NOEXCEPT override;324  bool do_always_noconv() const _NOEXCEPT override;325  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;326  int do_max_length() const _NOEXCEPT override;327};328 329_LIBCPP_SUPPRESS_DEPRECATED_PUSH330template <>331class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf16<char16_t, true> : public codecvt<char16_t, char, mbstate_t> {332  unsigned long __maxcode_;333  codecvt_mode __mode_;334 335public:336  typedef char16_t intern_type;337  typedef char extern_type;338  typedef mbstate_t state_type;339 340  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf16(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)341      : codecvt<char16_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}342  _LIBCPP_SUPPRESS_DEPRECATED_POP343 344protected:345  result do_out(state_type& __st,346                const intern_type* __frm,347                const intern_type* __frm_end,348                const intern_type*& __frm_nxt,349                extern_type* __to,350                extern_type* __to_end,351                extern_type*& __to_nxt) const override;352  result do_in(state_type& __st,353               const extern_type* __frm,354               const extern_type* __frm_end,355               const extern_type*& __frm_nxt,356               intern_type* __to,357               intern_type* __to_end,358               intern_type*& __to_nxt) const override;359  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;360  int do_encoding() const _NOEXCEPT override;361  bool do_always_noconv() const _NOEXCEPT override;362  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;363  int do_max_length() const _NOEXCEPT override;364};365 366_LIBCPP_SUPPRESS_DEPRECATED_PUSH367template <>368class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf16<char32_t, false> : public codecvt<char32_t, char, mbstate_t> {369  unsigned long __maxcode_;370  codecvt_mode __mode_;371 372public:373  typedef char32_t intern_type;374  typedef char extern_type;375  typedef mbstate_t state_type;376 377  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf16(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)378      : codecvt<char32_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}379  _LIBCPP_SUPPRESS_DEPRECATED_POP380 381protected:382  result do_out(state_type& __st,383                const intern_type* __frm,384                const intern_type* __frm_end,385                const intern_type*& __frm_nxt,386                extern_type* __to,387                extern_type* __to_end,388                extern_type*& __to_nxt) const override;389  result do_in(state_type& __st,390               const extern_type* __frm,391               const extern_type* __frm_end,392               const extern_type*& __frm_nxt,393               intern_type* __to,394               intern_type* __to_end,395               intern_type*& __to_nxt) const override;396  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;397  int do_encoding() const _NOEXCEPT override;398  bool do_always_noconv() const _NOEXCEPT override;399  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;400  int do_max_length() const _NOEXCEPT override;401};402 403_LIBCPP_SUPPRESS_DEPRECATED_PUSH404template <>405class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf16<char32_t, true> : public codecvt<char32_t, char, mbstate_t> {406  unsigned long __maxcode_;407  codecvt_mode __mode_;408 409public:410  typedef char32_t intern_type;411  typedef char extern_type;412  typedef mbstate_t state_type;413 414  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf16(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)415      : codecvt<char32_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}416  _LIBCPP_SUPPRESS_DEPRECATED_POP417 418protected:419  result do_out(state_type& __st,420                const intern_type* __frm,421                const intern_type* __frm_end,422                const intern_type*& __frm_nxt,423                extern_type* __to,424                extern_type* __to_end,425                extern_type*& __to_nxt) const override;426  result do_in(state_type& __st,427               const extern_type* __frm,428               const extern_type* __frm_end,429               const extern_type*& __frm_nxt,430               intern_type* __to,431               intern_type* __to_end,432               intern_type*& __to_nxt) const override;433  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;434  int do_encoding() const _NOEXCEPT override;435  bool do_always_noconv() const _NOEXCEPT override;436  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;437  int do_max_length() const _NOEXCEPT override;438};439 440_LIBCPP_SUPPRESS_DEPRECATED_PUSH441template <class _Elem, unsigned long _Maxcode = 0x10ffff, codecvt_mode _Mode = (codecvt_mode)0>442class _LIBCPP_DEPRECATED_IN_CXX17 codecvt_utf16 : public __codecvt_utf16<_Elem, _Mode & little_endian> {443public:444  _LIBCPP_HIDE_FROM_ABI explicit codecvt_utf16(size_t __refs = 0)445      : __codecvt_utf16<_Elem, _Mode & little_endian>(__refs, _Maxcode, _Mode) {}446 447  _LIBCPP_HIDE_FROM_ABI ~codecvt_utf16() {}448};449_LIBCPP_SUPPRESS_DEPRECATED_POP450 451// codecvt_utf8_utf16452 453template <class _Elem>454class __codecvt_utf8_utf16;455 456#      if _LIBCPP_HAS_WIDE_CHARACTERS457template <>458class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf8_utf16<wchar_t> : public codecvt<wchar_t, char, mbstate_t> {459  unsigned long __maxcode_;460  _LIBCPP_SUPPRESS_DEPRECATED_PUSH461  codecvt_mode __mode_;462  _LIBCPP_SUPPRESS_DEPRECATED_POP463 464public:465  typedef wchar_t intern_type;466  typedef char extern_type;467  typedef mbstate_t state_type;468 469  _LIBCPP_SUPPRESS_DEPRECATED_PUSH470  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf8_utf16(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)471      : codecvt<wchar_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}472  _LIBCPP_SUPPRESS_DEPRECATED_POP473 474protected:475  result do_out(state_type& __st,476                const intern_type* __frm,477                const intern_type* __frm_end,478                const intern_type*& __frm_nxt,479                extern_type* __to,480                extern_type* __to_end,481                extern_type*& __to_nxt) const override;482  result do_in(state_type& __st,483               const extern_type* __frm,484               const extern_type* __frm_end,485               const extern_type*& __frm_nxt,486               intern_type* __to,487               intern_type* __to_end,488               intern_type*& __to_nxt) const override;489  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;490  int do_encoding() const _NOEXCEPT override;491  bool do_always_noconv() const _NOEXCEPT override;492  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;493  int do_max_length() const _NOEXCEPT override;494};495#      endif // _LIBCPP_HAS_WIDE_CHARACTERS496 497_LIBCPP_SUPPRESS_DEPRECATED_PUSH498template <>499class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf8_utf16<char32_t> : public codecvt<char32_t, char, mbstate_t> {500  unsigned long __maxcode_;501  codecvt_mode __mode_;502 503public:504  typedef char32_t intern_type;505  typedef char extern_type;506  typedef mbstate_t state_type;507 508  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf8_utf16(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)509      : codecvt<char32_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}510  _LIBCPP_SUPPRESS_DEPRECATED_POP511 512protected:513  result do_out(state_type& __st,514                const intern_type* __frm,515                const intern_type* __frm_end,516                const intern_type*& __frm_nxt,517                extern_type* __to,518                extern_type* __to_end,519                extern_type*& __to_nxt) const override;520  result do_in(state_type& __st,521               const extern_type* __frm,522               const extern_type* __frm_end,523               const extern_type*& __frm_nxt,524               intern_type* __to,525               intern_type* __to_end,526               intern_type*& __to_nxt) const override;527  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;528  int do_encoding() const _NOEXCEPT override;529  bool do_always_noconv() const _NOEXCEPT override;530  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;531  int do_max_length() const _NOEXCEPT override;532};533 534_LIBCPP_SUPPRESS_DEPRECATED_PUSH535template <>536class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf8_utf16<char16_t> : public codecvt<char16_t, char, mbstate_t> {537  unsigned long __maxcode_;538  codecvt_mode __mode_;539 540public:541  typedef char16_t intern_type;542  typedef char extern_type;543  typedef mbstate_t state_type;544 545  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf8_utf16(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)546      : codecvt<char16_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}547  _LIBCPP_SUPPRESS_DEPRECATED_POP548 549protected:550  result do_out(state_type& __st,551                const intern_type* __frm,552                const intern_type* __frm_end,553                const intern_type*& __frm_nxt,554                extern_type* __to,555                extern_type* __to_end,556                extern_type*& __to_nxt) const override;557  result do_in(state_type& __st,558               const extern_type* __frm,559               const extern_type* __frm_end,560               const extern_type*& __frm_nxt,561               intern_type* __to,562               intern_type* __to_end,563               intern_type*& __to_nxt) const override;564  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;565  int do_encoding() const _NOEXCEPT override;566  bool do_always_noconv() const _NOEXCEPT override;567  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;568  int do_max_length() const _NOEXCEPT override;569};570 571_LIBCPP_SUPPRESS_DEPRECATED_PUSH572template <class _Elem, unsigned long _Maxcode = 0x10ffff, codecvt_mode _Mode = (codecvt_mode)0>573class _LIBCPP_DEPRECATED_IN_CXX17 codecvt_utf8_utf16 : public __codecvt_utf8_utf16<_Elem> {574public:575  _LIBCPP_HIDE_FROM_ABI explicit codecvt_utf8_utf16(size_t __refs = 0)576      : __codecvt_utf8_utf16<_Elem>(__refs, _Maxcode, _Mode) {}577 578  _LIBCPP_HIDE_FROM_ABI ~codecvt_utf8_utf16() {}579};580_LIBCPP_SUPPRESS_DEPRECATED_POP581 582_LIBCPP_END_NAMESPACE_STD583 584#    endif // _LIBCPP_STD_VER < 26 || defined(_LIBCPP_BUILDING_LIBRARY) || defined(_LIBCPP_ENABLE_CXX26_REMOVED_CODECVT)585 586#  endif // _LIBCPP_HAS_LOCALIZATION587 588#  if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20589#    include <atomic>590#    include <concepts>591#    include <cstddef>592#    include <cstdlib>593#    include <cstring>594#    include <initializer_list>595#    include <iosfwd>596#    include <limits>597#    include <mutex>598#    include <new>599#    include <optional>600#    include <stdexcept>601#    include <type_traits>602#    include <typeinfo>603#  endif604#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)605 606#endif // _LIBCPP_CODECVT607