55 char *_Pstate = (
char *)&_State;
61 unsigned char *_Ptr = (
unsigned char *)_Mid1;
63 unsigned short _Ch0, _Ch1;
66 _Ch0 = (
unsigned short)(_Ptr[1] << 8 | _Ptr[0]);
68 _Ch0 = (
unsigned short)(_Ptr[0] << 8 | _Ptr[1]);
71 unsigned char _Default_endian =
76 _Ch0 = (
unsigned short)(_Ptr[1] << 8 | _Ptr[0]);
78 _Ch0 = (
unsigned short)(_Ptr[0] << 8 | _Ptr[1]);
80 || (_Ch0 != 0xfeff && _Ch0 != 0xfffe))
81 *_Pstate = _Default_endian;
85 *_Pstate = (char)(_Ch0 == 0xfeff
87 : (
unsigned char)(3 - _Default_endian));
89 _First2, _Last2, _Mid2);
91 if (_Ans == _Mybase::partial)
100 if (_Ch0 < 0xd800 || 0xdc00 <= _Ch0)
110 _Ch1 = (
unsigned short)(_Ptr[3] << 8 | _Ptr[2]);
112 _Ch1 = (
unsigned short)(_Ptr[2] << 8 | _Ptr[3]);
114 if (_Ch1 < 0xdc00 || 0xe000 <= _Ch1)
115 return (_Mybase::error);
118 _Ch = (
unsigned long)(_Ch0 - 0xd800 + 0x0040) << 10
123 return (_Mybase::error);
124 *_Mid2++ = (_Elem)_Ch;
127 return (_First1 == _Mid1 ? _Mybase::partial : _Mybase::ok);
virtual result do_in(_Statype &_State, const _Byte *_First1, const _Byte *_Last1, const _Byte *&_Mid1, _Elem *_First2, _Elem *_Last2, _Elem *&_Mid2) const
Definition: utf16:51
#define _BIG_FIRST
Definition: codecvt:18
_Check_return_ _In_ wchar_t _Ch
Definition: vcruntime_string.h:89
_Mybase::result result
Definition: utf16:35
#define _LITTLE_FIRST
Definition: codecvt:17