Coverage Report

Created: 2020-07-11 14:00

/Users/buildslave/jenkins/workspace/coverage/llvm-project/libcxx/include/codecvt
Line
Count
Source (jump to first uncovered line)
1
// -*- C++ -*-
2
//===-------------------------- codecvt -----------------------------------===//
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-exception
7
//
8
//===----------------------------------------------------------------------===//
9
10
#ifndef _LIBCPP_CODECVT
11
#define _LIBCPP_CODECVT
12
13
/*
14
    codecvt synopsis
15
16
namespace std
17
{
18
19
enum codecvt_mode
20
{
21
    consume_header = 4,
22
    generate_header = 2,
23
    little_endian = 1
24
};
25
26
template <class Elem, unsigned long Maxcode = 0x10ffff,
27
          codecvt_mode Mode = (codecvt_mode)0>
28
class codecvt_utf8
29
    : public codecvt<Elem, char, mbstate_t>
30
{
31
    explicit codecvt_utf8(size_t refs = 0);
32
    ~codecvt_utf8();
33
};
34
35
template <class Elem, unsigned long Maxcode = 0x10ffff,
36
          codecvt_mode Mode = (codecvt_mode)0>
37
class codecvt_utf16
38
    : public codecvt<Elem, char, mbstate_t>
39
{
40
    explicit codecvt_utf16(size_t refs = 0);
41
    ~codecvt_utf16();
42
};
43
44
template <class Elem, unsigned long Maxcode = 0x10ffff,
45
          codecvt_mode Mode = (codecvt_mode)0>
46
class codecvt_utf8_utf16
47
    : public codecvt<Elem, char, mbstate_t>
48
{
49
    explicit codecvt_utf8_utf16(size_t refs = 0);
50
    ~codecvt_utf8_utf16();
51
};
52
53
}  // std
54
55
*/
56
57
#include <__config>
58
#include <__locale>
59
60
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
61
#pragma GCC system_header
62
#endif
63
64
_LIBCPP_BEGIN_NAMESPACE_STD
65
66
enum codecvt_mode
67
{
68
    consume_header = 4,
69
    generate_header = 2,
70
    little_endian = 1
71
};
72
73
// codecvt_utf8
74
75
template <class _Elem> class __codecvt_utf8;
76
77
template <>
78
class _LIBCPP_TYPE_VIS __codecvt_utf8<wchar_t>
79
    : public codecvt<wchar_t, char, mbstate_t>
80
{
81
    unsigned long _Maxcode_;
82
    codecvt_mode _Mode_;
83
public:
84
    typedef wchar_t   intern_type;
85
    typedef char      extern_type;
86
    typedef mbstate_t state_type;
87
88
    _LIBCPP_INLINE_VISIBILITY
89
    explicit __codecvt_utf8(size_t __refs, unsigned long _Maxcode,
90
                            codecvt_mode _Mode)
91
        : codecvt<wchar_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),
92
          _Mode_(_Mode) {}
93
protected:
94
    virtual result
95
        do_out(state_type& __st,
96
               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,
97
               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
98
    virtual result
99
        do_in(state_type& __st,
100
              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,
101
              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;
102
    virtual result
103
        do_unshift(state_type& __st,
104
                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
105
    virtual int do_encoding() const _NOEXCEPT;
106
    virtual bool do_always_noconv() const _NOEXCEPT;
107
    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,
108
                          size_t __mx) const;
109
    virtual int do_max_length() const _NOEXCEPT;
110
};
111
112
template <>
113
class _LIBCPP_TYPE_VIS __codecvt_utf8<char16_t>
114
    : public codecvt<char16_t, char, mbstate_t>
115
{
116
    unsigned long _Maxcode_;
117
    codecvt_mode _Mode_;
118
public:
119
    typedef char16_t  intern_type;
120
    typedef char      extern_type;
121
    typedef mbstate_t state_type;
122
123
    _LIBCPP_INLINE_VISIBILITY
124
    explicit __codecvt_utf8(size_t __refs, unsigned long _Maxcode,
125
                            codecvt_mode _Mode)
126
        : codecvt<char16_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),
127
0
          _Mode_(_Mode) {}
128
protected:
129
    virtual result
130
        do_out(state_type& __st,
131
               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,
132
               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
133
    virtual result
134
        do_in(state_type& __st,
135
              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,
136
              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;
137
    virtual result
138
        do_unshift(state_type& __st,
139
                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
140
    virtual int do_encoding() const _NOEXCEPT;
141
    virtual bool do_always_noconv() const _NOEXCEPT;
142
    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,
143
                          size_t __mx) const;
144
    virtual int do_max_length() const _NOEXCEPT;
145
};
146
147
template <>
148
class _LIBCPP_TYPE_VIS __codecvt_utf8<char32_t>
149
    : public codecvt<char32_t, char, mbstate_t>
150
{
151
    unsigned long _Maxcode_;
152
    codecvt_mode _Mode_;
153
public:
154
    typedef char32_t  intern_type;
155
    typedef char      extern_type;
156
    typedef mbstate_t state_type;
157
158
    _LIBCPP_INLINE_VISIBILITY
159
    explicit __codecvt_utf8(size_t __refs, unsigned long _Maxcode,
160
                            codecvt_mode _Mode)
161
        : codecvt<char32_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),
162
0
          _Mode_(_Mode) {}
163
protected:
164
    virtual result
165
        do_out(state_type& __st,
166
               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,
167
               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
168
    virtual result
169
        do_in(state_type& __st,
170
              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,
171
              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;
172
    virtual result
173
        do_unshift(state_type& __st,
174
                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
175
    virtual int do_encoding() const _NOEXCEPT;
176
    virtual bool do_always_noconv() const _NOEXCEPT;
177
    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,
178
                          size_t __mx) const;
179
    virtual int do_max_length() const _NOEXCEPT;
180
};
181
182
template <class _Elem, unsigned long _Maxcode = 0x10ffff,
183
          codecvt_mode _Mode = (codecvt_mode)0>
184
class _LIBCPP_TEMPLATE_VIS codecvt_utf8
185
    : public __codecvt_utf8<_Elem>
186
{
187
public:
188
    _LIBCPP_INLINE_VISIBILITY
189
    explicit codecvt_utf8(size_t __refs = 0)
190
        : __codecvt_utf8<_Elem>(__refs, _Maxcode, _Mode) {}
191
192
    _LIBCPP_INLINE_VISIBILITY
193
    ~codecvt_utf8() {}
194
};
195
196
// codecvt_utf16
197
198
template <class _Elem, bool _LittleEndian> class __codecvt_utf16;
199
200
template <>
201
class _LIBCPP_TYPE_VIS __codecvt_utf16<wchar_t, false>
202
    : public codecvt<wchar_t, char, mbstate_t>
203
{
204
    unsigned long _Maxcode_;
205
    codecvt_mode _Mode_;
206
public:
207
    typedef wchar_t   intern_type;
208
    typedef char      extern_type;
209
    typedef mbstate_t state_type;
210
211
    _LIBCPP_INLINE_VISIBILITY
212
    explicit __codecvt_utf16(size_t __refs, unsigned long _Maxcode,
213
                            codecvt_mode _Mode)
214
        : codecvt<wchar_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),
215
0
          _Mode_(_Mode) {}
216
protected:
217
    virtual result
218
        do_out(state_type& __st,
219
               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,
220
               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
221
    virtual result
222
        do_in(state_type& __st,
223
              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,
224
              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;
225
    virtual result
226
        do_unshift(state_type& __st,
227
                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
228
    virtual int do_encoding() const _NOEXCEPT;
229
    virtual bool do_always_noconv() const _NOEXCEPT;
230
    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,
231
                          size_t __mx) const;
232
    virtual int do_max_length() const _NOEXCEPT;
233
};
234
235
template <>
236
class _LIBCPP_TYPE_VIS __codecvt_utf16<wchar_t, true>
237
    : public codecvt<wchar_t, char, mbstate_t>
238
{
239
    unsigned long _Maxcode_;
240
    codecvt_mode _Mode_;
241
public:
242
    typedef wchar_t   intern_type;
243
    typedef char      extern_type;
244
    typedef mbstate_t state_type;
245
246
    _LIBCPP_INLINE_VISIBILITY
247
    explicit __codecvt_utf16(size_t __refs, unsigned long _Maxcode,
248
                            codecvt_mode _Mode)
249
        : codecvt<wchar_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),
250
0
          _Mode_(_Mode) {}
251
protected:
252
    virtual result
253
        do_out(state_type& __st,
254
               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,
255
               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
256
    virtual result
257
        do_in(state_type& __st,
258
              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,
259
              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;
260
    virtual result
261
        do_unshift(state_type& __st,
262
                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
263
    virtual int do_encoding() const _NOEXCEPT;
264
    virtual bool do_always_noconv() const _NOEXCEPT;
265
    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,
266
                          size_t __mx) const;
267
    virtual int do_max_length() const _NOEXCEPT;
268
};
269
270
template <>
271
class _LIBCPP_TYPE_VIS __codecvt_utf16<char16_t, false>
272
    : public codecvt<char16_t, char, mbstate_t>
273
{
274
    unsigned long _Maxcode_;
275
    codecvt_mode _Mode_;
276
public:
277
    typedef char16_t  intern_type;
278
    typedef char      extern_type;
279
    typedef mbstate_t state_type;
280
281
    _LIBCPP_INLINE_VISIBILITY
282
    explicit __codecvt_utf16(size_t __refs, unsigned long _Maxcode,
283
                            codecvt_mode _Mode)
284
        : codecvt<char16_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),
285
0
          _Mode_(_Mode) {}
286
protected:
287
    virtual result
288
        do_out(state_type& __st,
289
               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,
290
               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
291
    virtual result
292
        do_in(state_type& __st,
293
              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,
294
              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;
295
    virtual result
296
        do_unshift(state_type& __st,
297
                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
298
    virtual int do_encoding() const _NOEXCEPT;
299
    virtual bool do_always_noconv() const _NOEXCEPT;
300
    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,
301
                          size_t __mx) const;
302
    virtual int do_max_length() const _NOEXCEPT;
303
};
304
305
template <>
306
class _LIBCPP_TYPE_VIS __codecvt_utf16<char16_t, true>
307
    : public codecvt<char16_t, char, mbstate_t>
308
{
309
    unsigned long _Maxcode_;
310
    codecvt_mode _Mode_;
311
public:
312
    typedef char16_t  intern_type;
313
    typedef char      extern_type;
314
    typedef mbstate_t state_type;
315
316
    _LIBCPP_INLINE_VISIBILITY
317
    explicit __codecvt_utf16(size_t __refs, unsigned long _Maxcode,
318
                            codecvt_mode _Mode)
319
        : codecvt<char16_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),
320
0
          _Mode_(_Mode) {}
321
protected:
322
    virtual result
323
        do_out(state_type& __st,
324
               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,
325
               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
326
    virtual result
327
        do_in(state_type& __st,
328
              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,
329
              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;
330
    virtual result
331
        do_unshift(state_type& __st,
332
                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
333
    virtual int do_encoding() const _NOEXCEPT;
334
    virtual bool do_always_noconv() const _NOEXCEPT;
335
    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,
336
                          size_t __mx) const;
337
    virtual int do_max_length() const _NOEXCEPT;
338
};
339
340
template <>
341
class _LIBCPP_TYPE_VIS __codecvt_utf16<char32_t, false>
342
    : public codecvt<char32_t, char, mbstate_t>
343
{
344
    unsigned long _Maxcode_;
345
    codecvt_mode _Mode_;
346
public:
347
    typedef char32_t  intern_type;
348
    typedef char      extern_type;
349
    typedef mbstate_t state_type;
350
351
    _LIBCPP_INLINE_VISIBILITY
352
    explicit __codecvt_utf16(size_t __refs, unsigned long _Maxcode,
353
                            codecvt_mode _Mode)
354
        : codecvt<char32_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),
355
0
          _Mode_(_Mode) {}
356
protected:
357
    virtual result
358
        do_out(state_type& __st,
359
               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,
360
               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
361
    virtual result
362
        do_in(state_type& __st,
363
              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,
364
              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;
365
    virtual result
366
        do_unshift(state_type& __st,
367
                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
368
    virtual int do_encoding() const _NOEXCEPT;
369
    virtual bool do_always_noconv() const _NOEXCEPT;
370
    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,
371
                          size_t __mx) const;
372
    virtual int do_max_length() const _NOEXCEPT;
373
};
374
375
template <>
376
class _LIBCPP_TYPE_VIS __codecvt_utf16<char32_t, true>
377
    : public codecvt<char32_t, char, mbstate_t>
378
{
379
    unsigned long _Maxcode_;
380
    codecvt_mode _Mode_;
381
public:
382
    typedef char32_t  intern_type;
383
    typedef char      extern_type;
384
    typedef mbstate_t state_type;
385
386
    _LIBCPP_INLINE_VISIBILITY
387
    explicit __codecvt_utf16(size_t __refs, unsigned long _Maxcode,
388
                            codecvt_mode _Mode)
389
        : codecvt<char32_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),
390
0
          _Mode_(_Mode) {}
391
protected:
392
    virtual result
393
        do_out(state_type& __st,
394
               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,
395
               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
396
    virtual result
397
        do_in(state_type& __st,
398
              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,
399
              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;
400
    virtual result
401
        do_unshift(state_type& __st,
402
                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
403
    virtual int do_encoding() const _NOEXCEPT;
404
    virtual bool do_always_noconv() const _NOEXCEPT;
405
    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,
406
                          size_t __mx) const;
407
    virtual int do_max_length() const _NOEXCEPT;
408
};
409
410
template <class _Elem, unsigned long _Maxcode = 0x10ffff,
411
          codecvt_mode _Mode = (codecvt_mode)0>
412
class _LIBCPP_TEMPLATE_VIS codecvt_utf16
413
    : public __codecvt_utf16<_Elem, _Mode & little_endian>
414
{
415
public:
416
    _LIBCPP_INLINE_VISIBILITY
417
    explicit codecvt_utf16(size_t __refs = 0)
418
        : __codecvt_utf16<_Elem, _Mode & little_endian>(__refs, _Maxcode, _Mode) {}
419
420
    _LIBCPP_INLINE_VISIBILITY
421
    ~codecvt_utf16() {}
422
};
423
424
// codecvt_utf8_utf16
425
426
template <class _Elem> class __codecvt_utf8_utf16;
427
428
template <>
429
class _LIBCPP_TYPE_VIS __codecvt_utf8_utf16<wchar_t>
430
    : public codecvt<wchar_t, char, mbstate_t>
431
{
432
    unsigned long _Maxcode_;
433
    codecvt_mode _Mode_;
434
public:
435
    typedef wchar_t   intern_type;
436
    typedef char      extern_type;
437
    typedef mbstate_t state_type;
438
439
    _LIBCPP_INLINE_VISIBILITY
440
    explicit __codecvt_utf8_utf16(size_t __refs, unsigned long _Maxcode,
441
                            codecvt_mode _Mode)
442
        : codecvt<wchar_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),
443
0
          _Mode_(_Mode) {}
444
protected:
445
    virtual result
446
        do_out(state_type& __st,
447
               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,
448
               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
449
    virtual result
450
        do_in(state_type& __st,
451
              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,
452
              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;
453
    virtual result
454
        do_unshift(state_type& __st,
455
                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
456
    virtual int do_encoding() const _NOEXCEPT;
457
    virtual bool do_always_noconv() const _NOEXCEPT;
458
    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,
459
                          size_t __mx) const;
460
    virtual int do_max_length() const _NOEXCEPT;
461
};
462
463
template <>
464
class _LIBCPP_TYPE_VIS __codecvt_utf8_utf16<char32_t>
465
    : public codecvt<char32_t, char, mbstate_t>
466
{
467
    unsigned long _Maxcode_;
468
    codecvt_mode _Mode_;
469
public:
470
    typedef char32_t  intern_type;
471
    typedef char      extern_type;
472
    typedef mbstate_t state_type;
473
474
    _LIBCPP_INLINE_VISIBILITY
475
    explicit __codecvt_utf8_utf16(size_t __refs, unsigned long _Maxcode,
476
                            codecvt_mode _Mode)
477
        : codecvt<char32_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),
478
0
          _Mode_(_Mode) {}
479
protected:
480
    virtual result
481
        do_out(state_type& __st,
482
               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,
483
               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
484
    virtual result
485
        do_in(state_type& __st,
486
              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,
487
              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;
488
    virtual result
489
        do_unshift(state_type& __st,
490
                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
491
    virtual int do_encoding() const _NOEXCEPT;
492
    virtual bool do_always_noconv() const _NOEXCEPT;
493
    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,
494
                          size_t __mx) const;
495
    virtual int do_max_length() const _NOEXCEPT;
496
};
497
498
template <>
499
class _LIBCPP_TYPE_VIS __codecvt_utf8_utf16<char16_t>
500
    : public codecvt<char16_t, char, mbstate_t>
501
{
502
    unsigned long _Maxcode_;
503
    codecvt_mode _Mode_;
504
public:
505
    typedef char16_t  intern_type;
506
    typedef char      extern_type;
507
    typedef mbstate_t state_type;
508
509
    _LIBCPP_INLINE_VISIBILITY
510
    explicit __codecvt_utf8_utf16(size_t __refs, unsigned long _Maxcode,
511
                            codecvt_mode _Mode)
512
        : codecvt<char16_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),
513
0
          _Mode_(_Mode) {}
514
protected:
515
    virtual result
516
        do_out(state_type& __st,
517
               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,
518
               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
519
    virtual result
520
        do_in(state_type& __st,
521
              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,
522
              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;
523
    virtual result
524
        do_unshift(state_type& __st,
525
                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;
526
    virtual int do_encoding() const _NOEXCEPT;
527
    virtual bool do_always_noconv() const _NOEXCEPT;
528
    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,
529
                          size_t __mx) const;
530
    virtual int do_max_length() const _NOEXCEPT;
531
};
532
533
template <class _Elem, unsigned long _Maxcode = 0x10ffff,
534
          codecvt_mode _Mode = (codecvt_mode)0>
535
class _LIBCPP_TEMPLATE_VIS codecvt_utf8_utf16
536
    : public __codecvt_utf8_utf16<_Elem>
537
{
538
public:
539
    _LIBCPP_INLINE_VISIBILITY
540
    explicit codecvt_utf8_utf16(size_t __refs = 0)
541
        : __codecvt_utf8_utf16<_Elem>(__refs, _Maxcode, _Mode) {}
542
543
    _LIBCPP_INLINE_VISIBILITY
544
    ~codecvt_utf8_utf16() {}
545
};
546
547
_LIBCPP_END_NAMESPACE_STD
548
549
#endif  // _LIBCPP_CODECVT