|
virtual result | do_in (_Statype &, const _Byte *_First1, const _Byte *_Last1, const _Byte *&_Mid1, _Elem *_First2, _Elem *_Last2, _Elem *&_Mid2) const |
|
virtual result | do_out (_Statype &, const _Elem *_First1, const _Elem *_Last1, const _Elem *&_Mid1, _Byte *_First2, _Byte *_Last2, _Byte *&_Mid2) const |
|
virtual result | do_unshift (_Statype &, _Byte *_First2, _Byte *, _Byte *&_Mid2) const |
|
virtual int | do_length (_Statype &_State, const _Byte *_First1, const _Byte *_Last1, size_t _Count) const _THROW0() |
|
virtual bool | do_always_noconv () const _THROW0() |
|
virtual int | do_max_length () const _THROW0() |
|
virtual int | do_encoding () const _THROW0() |
|
template<class _Elem, class _Table, unsigned long _Maxcode = 0xffff>
template<class _Elem, class _Table, unsigned long _Maxcode = 0xffff>
template<class _Elem, class _Table, unsigned long _Maxcode = 0xffff>
template<class _Elem, class _Table, unsigned long _Maxcode = 0xffff>
template<class _Elem, class _Table, unsigned long _Maxcode = 0xffff>
template<class _Elem, class _Table, unsigned long _Maxcode = 0xffff>
template<class _Elem, class _Table, unsigned long _Maxcode = 0xffff>
_STD codecvt< _Elem, char, _Statype > _Mybase
Definition: xtwo_byte:30
template<class _Elem, class _Table, unsigned long _Maxcode = 0xffff>
template<class _Elem, class _Table, unsigned long _Maxcode = 0xffff>
template<class _Elem, class _Table, unsigned long _Maxcode = 0xffff>
template<class _Elem, class _Table, unsigned long _Maxcode = 0xffff>
51 unsigned long _Maxc = _Maxcode;
55 for (; _Mid1 != _Last1 && _Mid2 != _Last2; ++_Mid1)
57 unsigned char _Bytecode = (
unsigned char)*_Mid1;
58 unsigned short _Widecode;
60 if (_Bytecode < _Table::_Nlow)
61 _Widecode = _Bytecode;
63 _Table::_Btw[_Bytecode - _Table::_Nlow]) != 0)
65 else if (_Table::_Nbytes < 2)
66 return (_Mybase::error);
67 else if (_Mid1 + 1 == _Last1)
71 _Widecode = (
unsigned short)(_Bytecode << 8
72 | (
unsigned char)*++_Mid1);
73 unsigned long _Lo = 0;
74 unsigned long _Hi =
sizeof (_Table::_Dbvalid)
75 /
sizeof (_Table::_Dbvalid[0]);
79 unsigned long _Mid = (_Hi + _Lo) / 2;
81 if (_Widecode < _Table::_Dbvalid[_Mid])
83 else if (_Widecode == _Table::_Dbvalid[_Mid])
85 _Widecode = _Table::_Dbtw[_Mid];
92 return (_Mybase::error);
94 if (_Maxc < _Widecode)
95 return (_Mybase::error);
97 *_Mid2++ = (_Elem)_Widecode;
100 return (_First1 == _Mid1 ? _Mybase::partial : _Mybase::ok);
template<class _Elem, class _Table, unsigned long _Maxcode = 0xffff>
169 for (; _Wchars <
_Count && _First1 != _Last1; )
175 switch (
do_in(_Mystate, _First1, _Last1, _Mid1,
176 &_Ch, &_Ch + 1, _Mid2))
178 case _Mybase::noconv:
179 return ((
int)(_Wchars + (_Last1 - _First1)));
182 if (_Mid2 == &_Ch + 1)
188 return ((
int)_Wchars);
191 return ((
int)_Wchars);
unsigned int _Count
Definition: xcomplex:668
_Check_return_ _In_ wchar_t _Ch
Definition: vcruntime_string.h:89
char _Byte
Definition: xtwo_byte:32
virtual result do_in(_Statype &, const _Byte *_First1, const _Byte *_Last1, const _Byte *&_Mid1, _Elem *_First2, _Elem *_Last2, _Elem *&_Mid2) const
Definition: xtwo_byte:47
_CSTD mbstate_t _Statype
Definition: codecvt:26
template<class _Elem, class _Table, unsigned long _Maxcode = 0xffff>
201 return (_Table::_Nbytes);
template<class _Elem, class _Table, unsigned long _Maxcode = 0xffff>
107 unsigned long _Maxc = _Maxcode;
111 for (; _Mid1 != _Last1 && _Mid2 != _Last2; ++_Mid1)
113 unsigned long _Hugecode = (
unsigned long)*_Mid1;
114 unsigned short _Widecode = (
unsigned short)_Hugecode;
116 if (_Maxc < _Widecode)
117 return (_Mybase::error);
118 else if (_Widecode < _Table::_Nlow || (_Widecode < 0x100
119 && _Table::_Btw[_Widecode - _Table::_Nlow] == _Widecode))
123 unsigned long _Lo = 0;
124 unsigned long _Hi =
sizeof (_Table::_Wvalid)
125 /
sizeof (_Table::_Wvalid[0]);
129 unsigned long _Mid = (_Hi + _Lo) / 2;
131 if (_Widecode < _Table::_Wvalid[_Mid])
133 else if (_Widecode == _Table::_Wvalid[_Mid])
135 _Widecode = _Table::_Wtb[_Mid];
142 return (_Mybase::error);
144 if (_Widecode < 0x100)
146 else if (_Mid2 + 1 == _Last2)
147 return (_Mybase::partial);
149 *_Mid2++ = (
_Byte)(_Widecode >> 8);
150 *_Mid2++ = (
_Byte)_Widecode;
153 return (_First1 == _Mid1 ? _Mybase::partial : _Mybase::ok);
char _Byte
Definition: xtwo_byte:32
template<class _Elem, class _Table, unsigned long _Maxcode = 0xffff>
160 return (_Mybase::ok);
The documentation for this class was generated from the following file: