brintos

brintos / llvm-project-archived public Read only

0
0
Text · 21.9 KiB · b996ea4 Raw
592 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___CXX03_CODECVT11#define _LIBCPP___CXX03_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#include <__cxx03/__config>58#include <__cxx03/__locale>59#include <__cxx03/version>60 61#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)62#  pragma GCC system_header63#endif64 65_LIBCPP_BEGIN_NAMESPACE_STD66 67enum codecvt_mode { consume_header = 4, generate_header = 2, little_endian = 1 };68 69// codecvt_utf870 71template <class _Elem>72class __codecvt_utf8;73 74#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS75template <>76class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf8<wchar_t> : public codecvt<wchar_t, char, mbstate_t> {77  unsigned long __maxcode_;78  _LIBCPP_SUPPRESS_DEPRECATED_PUSH79  codecvt_mode __mode_;80  _LIBCPP_SUPPRESS_DEPRECATED_POP81 82public:83  typedef wchar_t intern_type;84  typedef char extern_type;85  typedef mbstate_t state_type;86 87  _LIBCPP_SUPPRESS_DEPRECATED_PUSH88  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf8(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)89      : codecvt<wchar_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}90  _LIBCPP_SUPPRESS_DEPRECATED_POP91 92protected:93  result do_out(state_type& __st,94                const intern_type* __frm,95                const intern_type* __frm_end,96                const intern_type*& __frm_nxt,97                extern_type* __to,98                extern_type* __to_end,99                extern_type*& __to_nxt) const override;100  result do_in(state_type& __st,101               const extern_type* __frm,102               const extern_type* __frm_end,103               const extern_type*& __frm_nxt,104               intern_type* __to,105               intern_type* __to_end,106               intern_type*& __to_nxt) const override;107  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;108  int do_encoding() const _NOEXCEPT override;109  bool do_always_noconv() const _NOEXCEPT override;110  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;111  int do_max_length() const _NOEXCEPT override;112};113#endif // _LIBCPP_HAS_NO_WIDE_CHARACTERS114 115_LIBCPP_SUPPRESS_DEPRECATED_PUSH116template <>117class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf8<char16_t> : public codecvt<char16_t, char, mbstate_t> {118  unsigned long __maxcode_;119  codecvt_mode __mode_;120 121public:122  typedef char16_t intern_type;123  typedef char extern_type;124  typedef mbstate_t state_type;125 126  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf8(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)127      : codecvt<char16_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}128  _LIBCPP_SUPPRESS_DEPRECATED_POP129 130protected:131  result do_out(state_type& __st,132                const intern_type* __frm,133                const intern_type* __frm_end,134                const intern_type*& __frm_nxt,135                extern_type* __to,136                extern_type* __to_end,137                extern_type*& __to_nxt) const override;138  result do_in(state_type& __st,139               const extern_type* __frm,140               const extern_type* __frm_end,141               const extern_type*& __frm_nxt,142               intern_type* __to,143               intern_type* __to_end,144               intern_type*& __to_nxt) const override;145  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;146  int do_encoding() const _NOEXCEPT override;147  bool do_always_noconv() const _NOEXCEPT override;148  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;149  int do_max_length() const _NOEXCEPT override;150};151 152_LIBCPP_SUPPRESS_DEPRECATED_PUSH153template <>154class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf8<char32_t> : public codecvt<char32_t, char, mbstate_t> {155  unsigned long __maxcode_;156  codecvt_mode __mode_;157 158public:159  typedef char32_t intern_type;160  typedef char extern_type;161  typedef mbstate_t state_type;162 163  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf8(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)164      : codecvt<char32_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}165  _LIBCPP_SUPPRESS_DEPRECATED_POP166 167protected:168  result do_out(state_type& __st,169                const intern_type* __frm,170                const intern_type* __frm_end,171                const intern_type*& __frm_nxt,172                extern_type* __to,173                extern_type* __to_end,174                extern_type*& __to_nxt) const override;175  result do_in(state_type& __st,176               const extern_type* __frm,177               const extern_type* __frm_end,178               const extern_type*& __frm_nxt,179               intern_type* __to,180               intern_type* __to_end,181               intern_type*& __to_nxt) const override;182  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;183  int do_encoding() const _NOEXCEPT override;184  bool do_always_noconv() const _NOEXCEPT override;185  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;186  int do_max_length() const _NOEXCEPT override;187};188 189_LIBCPP_SUPPRESS_DEPRECATED_PUSH190template <class _Elem, unsigned long _Maxcode = 0x10ffff, codecvt_mode _Mode = (codecvt_mode)0>191class _LIBCPP_TEMPLATE_VIS codecvt_utf8 : public __codecvt_utf8<_Elem> {192public:193  _LIBCPP_HIDE_FROM_ABI explicit codecvt_utf8(size_t __refs = 0) : __codecvt_utf8<_Elem>(__refs, _Maxcode, _Mode) {}194 195  _LIBCPP_HIDE_FROM_ABI ~codecvt_utf8() {}196};197_LIBCPP_SUPPRESS_DEPRECATED_POP198 199// codecvt_utf16200 201template <class _Elem, bool _LittleEndian>202class __codecvt_utf16;203 204#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS205template <>206class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf16<wchar_t, false> : public codecvt<wchar_t, char, mbstate_t> {207  unsigned long __maxcode_;208  _LIBCPP_SUPPRESS_DEPRECATED_PUSH209  codecvt_mode __mode_;210  _LIBCPP_SUPPRESS_DEPRECATED_POP211 212public:213  typedef wchar_t intern_type;214  typedef char extern_type;215  typedef mbstate_t state_type;216 217  _LIBCPP_SUPPRESS_DEPRECATED_PUSH218  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf16(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)219      : codecvt<wchar_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}220  _LIBCPP_SUPPRESS_DEPRECATED_POP221 222protected:223  result do_out(state_type& __st,224                const intern_type* __frm,225                const intern_type* __frm_end,226                const intern_type*& __frm_nxt,227                extern_type* __to,228                extern_type* __to_end,229                extern_type*& __to_nxt) const override;230  result do_in(state_type& __st,231               const extern_type* __frm,232               const extern_type* __frm_end,233               const extern_type*& __frm_nxt,234               intern_type* __to,235               intern_type* __to_end,236               intern_type*& __to_nxt) const override;237  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;238  int do_encoding() const _NOEXCEPT override;239  bool do_always_noconv() const _NOEXCEPT override;240  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;241  int do_max_length() const _NOEXCEPT override;242};243 244template <>245class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf16<wchar_t, true> : public codecvt<wchar_t, char, mbstate_t> {246  unsigned long __maxcode_;247  _LIBCPP_SUPPRESS_DEPRECATED_PUSH248  codecvt_mode __mode_;249  _LIBCPP_SUPPRESS_DEPRECATED_POP250 251public:252  typedef wchar_t intern_type;253  typedef char extern_type;254  typedef mbstate_t state_type;255 256  _LIBCPP_SUPPRESS_DEPRECATED_PUSH257  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf16(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)258      : codecvt<wchar_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}259  _LIBCPP_SUPPRESS_DEPRECATED_POP260 261protected:262  result do_out(state_type& __st,263                const intern_type* __frm,264                const intern_type* __frm_end,265                const intern_type*& __frm_nxt,266                extern_type* __to,267                extern_type* __to_end,268                extern_type*& __to_nxt) const override;269  result do_in(state_type& __st,270               const extern_type* __frm,271               const extern_type* __frm_end,272               const extern_type*& __frm_nxt,273               intern_type* __to,274               intern_type* __to_end,275               intern_type*& __to_nxt) const override;276  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;277  int do_encoding() const _NOEXCEPT override;278  bool do_always_noconv() const _NOEXCEPT override;279  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;280  int do_max_length() const _NOEXCEPT override;281};282#endif // _LIBCPP_HAS_NO_WIDE_CHARACTERS283 284_LIBCPP_SUPPRESS_DEPRECATED_PUSH285template <>286class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf16<char16_t, false> : public codecvt<char16_t, char, mbstate_t> {287  unsigned long __maxcode_;288  codecvt_mode __mode_;289 290public:291  typedef char16_t intern_type;292  typedef char extern_type;293  typedef mbstate_t state_type;294 295  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf16(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)296      : codecvt<char16_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}297  _LIBCPP_SUPPRESS_DEPRECATED_POP298 299protected:300  result do_out(state_type& __st,301                const intern_type* __frm,302                const intern_type* __frm_end,303                const intern_type*& __frm_nxt,304                extern_type* __to,305                extern_type* __to_end,306                extern_type*& __to_nxt) const override;307  result do_in(state_type& __st,308               const extern_type* __frm,309               const extern_type* __frm_end,310               const extern_type*& __frm_nxt,311               intern_type* __to,312               intern_type* __to_end,313               intern_type*& __to_nxt) const override;314  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;315  int do_encoding() const _NOEXCEPT override;316  bool do_always_noconv() const _NOEXCEPT override;317  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;318  int do_max_length() const _NOEXCEPT override;319};320 321_LIBCPP_SUPPRESS_DEPRECATED_PUSH322template <>323class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf16<char16_t, true> : public codecvt<char16_t, char, mbstate_t> {324  unsigned long __maxcode_;325  codecvt_mode __mode_;326 327public:328  typedef char16_t intern_type;329  typedef char extern_type;330  typedef mbstate_t state_type;331 332  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf16(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)333      : codecvt<char16_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}334  _LIBCPP_SUPPRESS_DEPRECATED_POP335 336protected:337  result do_out(state_type& __st,338                const intern_type* __frm,339                const intern_type* __frm_end,340                const intern_type*& __frm_nxt,341                extern_type* __to,342                extern_type* __to_end,343                extern_type*& __to_nxt) const override;344  result do_in(state_type& __st,345               const extern_type* __frm,346               const extern_type* __frm_end,347               const extern_type*& __frm_nxt,348               intern_type* __to,349               intern_type* __to_end,350               intern_type*& __to_nxt) const override;351  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;352  int do_encoding() const _NOEXCEPT override;353  bool do_always_noconv() const _NOEXCEPT override;354  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;355  int do_max_length() const _NOEXCEPT override;356};357 358_LIBCPP_SUPPRESS_DEPRECATED_PUSH359template <>360class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf16<char32_t, false> : public codecvt<char32_t, char, mbstate_t> {361  unsigned long __maxcode_;362  codecvt_mode __mode_;363 364public:365  typedef char32_t intern_type;366  typedef char extern_type;367  typedef mbstate_t state_type;368 369  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf16(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)370      : codecvt<char32_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}371  _LIBCPP_SUPPRESS_DEPRECATED_POP372 373protected:374  result do_out(state_type& __st,375                const intern_type* __frm,376                const intern_type* __frm_end,377                const intern_type*& __frm_nxt,378                extern_type* __to,379                extern_type* __to_end,380                extern_type*& __to_nxt) const override;381  result do_in(state_type& __st,382               const extern_type* __frm,383               const extern_type* __frm_end,384               const extern_type*& __frm_nxt,385               intern_type* __to,386               intern_type* __to_end,387               intern_type*& __to_nxt) const override;388  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;389  int do_encoding() const _NOEXCEPT override;390  bool do_always_noconv() const _NOEXCEPT override;391  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;392  int do_max_length() const _NOEXCEPT override;393};394 395_LIBCPP_SUPPRESS_DEPRECATED_PUSH396template <>397class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf16<char32_t, true> : public codecvt<char32_t, char, mbstate_t> {398  unsigned long __maxcode_;399  codecvt_mode __mode_;400 401public:402  typedef char32_t intern_type;403  typedef char extern_type;404  typedef mbstate_t state_type;405 406  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf16(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)407      : codecvt<char32_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}408  _LIBCPP_SUPPRESS_DEPRECATED_POP409 410protected:411  result do_out(state_type& __st,412                const intern_type* __frm,413                const intern_type* __frm_end,414                const intern_type*& __frm_nxt,415                extern_type* __to,416                extern_type* __to_end,417                extern_type*& __to_nxt) const override;418  result do_in(state_type& __st,419               const extern_type* __frm,420               const extern_type* __frm_end,421               const extern_type*& __frm_nxt,422               intern_type* __to,423               intern_type* __to_end,424               intern_type*& __to_nxt) const override;425  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;426  int do_encoding() const _NOEXCEPT override;427  bool do_always_noconv() const _NOEXCEPT override;428  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;429  int do_max_length() const _NOEXCEPT override;430};431 432_LIBCPP_SUPPRESS_DEPRECATED_PUSH433template <class _Elem, unsigned long _Maxcode = 0x10ffff, codecvt_mode _Mode = (codecvt_mode)0>434class _LIBCPP_TEMPLATE_VIS codecvt_utf16 : public __codecvt_utf16<_Elem, _Mode & little_endian> {435public:436  _LIBCPP_HIDE_FROM_ABI explicit codecvt_utf16(size_t __refs = 0)437      : __codecvt_utf16 < _Elem,438  _Mode & little_endian > (__refs, _Maxcode, _Mode) {}439 440  _LIBCPP_HIDE_FROM_ABI ~codecvt_utf16() {}441};442_LIBCPP_SUPPRESS_DEPRECATED_POP443 444// codecvt_utf8_utf16445 446template <class _Elem>447class __codecvt_utf8_utf16;448 449#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS450template <>451class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf8_utf16<wchar_t> : public codecvt<wchar_t, char, mbstate_t> {452  unsigned long __maxcode_;453  _LIBCPP_SUPPRESS_DEPRECATED_PUSH454  codecvt_mode __mode_;455  _LIBCPP_SUPPRESS_DEPRECATED_POP456 457public:458  typedef wchar_t intern_type;459  typedef char extern_type;460  typedef mbstate_t state_type;461 462  _LIBCPP_SUPPRESS_DEPRECATED_PUSH463  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf8_utf16(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)464      : codecvt<wchar_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}465  _LIBCPP_SUPPRESS_DEPRECATED_POP466 467protected:468  result do_out(state_type& __st,469                const intern_type* __frm,470                const intern_type* __frm_end,471                const intern_type*& __frm_nxt,472                extern_type* __to,473                extern_type* __to_end,474                extern_type*& __to_nxt) const override;475  result do_in(state_type& __st,476               const extern_type* __frm,477               const extern_type* __frm_end,478               const extern_type*& __frm_nxt,479               intern_type* __to,480               intern_type* __to_end,481               intern_type*& __to_nxt) const override;482  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;483  int do_encoding() const _NOEXCEPT override;484  bool do_always_noconv() const _NOEXCEPT override;485  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;486  int do_max_length() const _NOEXCEPT override;487};488#endif // _LIBCPP_HAS_NO_WIDE_CHARACTERS489 490_LIBCPP_SUPPRESS_DEPRECATED_PUSH491template <>492class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf8_utf16<char32_t> : public codecvt<char32_t, char, mbstate_t> {493  unsigned long __maxcode_;494  codecvt_mode __mode_;495 496public:497  typedef char32_t intern_type;498  typedef char extern_type;499  typedef mbstate_t state_type;500 501  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf8_utf16(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)502      : codecvt<char32_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}503  _LIBCPP_SUPPRESS_DEPRECATED_POP504 505protected:506  result do_out(state_type& __st,507                const intern_type* __frm,508                const intern_type* __frm_end,509                const intern_type*& __frm_nxt,510                extern_type* __to,511                extern_type* __to_end,512                extern_type*& __to_nxt) const override;513  result do_in(state_type& __st,514               const extern_type* __frm,515               const extern_type* __frm_end,516               const extern_type*& __frm_nxt,517               intern_type* __to,518               intern_type* __to_end,519               intern_type*& __to_nxt) const override;520  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;521  int do_encoding() const _NOEXCEPT override;522  bool do_always_noconv() const _NOEXCEPT override;523  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;524  int do_max_length() const _NOEXCEPT override;525};526 527_LIBCPP_SUPPRESS_DEPRECATED_PUSH528template <>529class _LIBCPP_EXPORTED_FROM_ABI __codecvt_utf8_utf16<char16_t> : public codecvt<char16_t, char, mbstate_t> {530  unsigned long __maxcode_;531  codecvt_mode __mode_;532 533public:534  typedef char16_t intern_type;535  typedef char extern_type;536  typedef mbstate_t state_type;537 538  _LIBCPP_HIDE_FROM_ABI explicit __codecvt_utf8_utf16(size_t __refs, unsigned long __maxcode, codecvt_mode __mode)539      : codecvt<char16_t, char, mbstate_t>(__refs), __maxcode_(__maxcode), __mode_(__mode) {}540  _LIBCPP_SUPPRESS_DEPRECATED_POP541 542protected:543  result do_out(state_type& __st,544                const intern_type* __frm,545                const intern_type* __frm_end,546                const intern_type*& __frm_nxt,547                extern_type* __to,548                extern_type* __to_end,549                extern_type*& __to_nxt) const override;550  result do_in(state_type& __st,551               const extern_type* __frm,552               const extern_type* __frm_end,553               const extern_type*& __frm_nxt,554               intern_type* __to,555               intern_type* __to_end,556               intern_type*& __to_nxt) const override;557  result do_unshift(state_type& __st, extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const override;558  int do_encoding() const _NOEXCEPT override;559  bool do_always_noconv() const _NOEXCEPT override;560  int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const override;561  int do_max_length() const _NOEXCEPT override;562};563 564_LIBCPP_SUPPRESS_DEPRECATED_PUSH565template <class _Elem, unsigned long _Maxcode = 0x10ffff, codecvt_mode _Mode = (codecvt_mode)0>566class _LIBCPP_TEMPLATE_VIS codecvt_utf8_utf16 : public __codecvt_utf8_utf16<_Elem> {567public:568  _LIBCPP_HIDE_FROM_ABI explicit codecvt_utf8_utf16(size_t __refs = 0)569      : __codecvt_utf8_utf16<_Elem>(__refs, _Maxcode, _Mode) {}570 571  _LIBCPP_HIDE_FROM_ABI ~codecvt_utf8_utf16() {}572};573_LIBCPP_SUPPRESS_DEPRECATED_POP574 575_LIBCPP_END_NAMESPACE_STD576 577#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES)578#  include <__cxx03/atomic>579#  include <__cxx03/cstddef>580#  include <__cxx03/cstdlib>581#  include <__cxx03/cstring>582#  include <__cxx03/iosfwd>583#  include <__cxx03/limits>584#  include <__cxx03/mutex>585#  include <__cxx03/new>586#  include <__cxx03/stdexcept>587#  include <__cxx03/type_traits>588#  include <__cxx03/typeinfo>589#endif590 591#endif // _LIBCPP___CXX03_CODECVT592