00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 const ctype_base::mask*
00038 ctype<char>::classic_table() throw()
00039 { return __ctype_mask; }
00040
00041 ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
00042 size_t __refs)
00043 : facet(__refs), _M_del(__table != 0 && __del),
00044 _M_toupper(__trans_upper), _M_tolower(__trans_lower),
00045 _M_table(__table ? __table : classic_table())
00046 {
00047 memset(_M_widen, 0, sizeof(_M_widen));
00048 _M_widen_ok = 0;
00049 memset(_M_narrow, 0, sizeof(_M_narrow));
00050 _M_narrow_ok = 0;
00051 }
00052
00053 ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
00054 : facet(__refs), _M_del(__table != 0 && __del),
00055 _M_toupper(__trans_upper), _M_tolower(__trans_lower),
00056 _M_table(__table ? __table : classic_table())
00057 {
00058 memset(_M_widen, 0, sizeof(_M_widen));
00059 _M_widen_ok = 0;
00060 memset(_M_narrow, 0, sizeof(_M_narrow));
00061 _M_narrow_ok = 0;
00062 }
00063
00064 char
00065 ctype<char>::do_toupper(char __c) const
00066 { return _M_toupper[static_cast<unsigned char>(__c)]; }
00067
00068 const char*
00069 ctype<char>::do_toupper(char* __low, const char* __high) const
00070 {
00071 while (__low < __high)
00072 {
00073 *__low = _M_toupper[static_cast<unsigned char>(*__low)];
00074 ++__low;
00075 }
00076 return __high;
00077 }
00078
00079 char
00080 ctype<char>::do_tolower(char __c) const
00081 { return _M_tolower[static_cast<unsigned char>(__c)]; }
00082
00083 const char*
00084 ctype<char>::do_tolower(char* __low, const char* __high) const
00085 {
00086 while (__low < __high)
00087 {
00088 *__low = _M_tolower[static_cast<unsigned char>(*__low)];
00089 ++__low;
00090 }
00091 return __high;
00092 }