27#ifndef RW_CTYPE_H_INCLUDED
28#define RW_CTYPE_H_INCLUDED
57 virtual const char*
what ()
const = 0;
82 _RWSTD_SIZE_T n_calls_ [n_funs];
86 _RWSTD_SIZE_T n_throws_ [n_funs];
90 _RWSTD_SIZE_T throw_at_calls_ [n_funs];
111template <
class _CharT>
119 typedef std::ctype<char_type>
Base;
132 do_toupper (char_type)
const;
134 virtual const char_type*
135 do_toupper (char_type*,
const char_type*)
const;
138 do_tolower (char_type)
const;
140 virtual const char_type*
141 do_tolower (char_type*,
const char_type*)
const;
144 do_widen (
char)
const;
147 do_widen (
const char*,
const char*, char_type*)
const;
150 do_narrow (char_type,
char)
const;
152 virtual const char_type*
153 do_narrow (
const char_type*,
const char_type*,
char,
char*)
const;
157#ifndef _RWSTD_NO_WCHAR_T
163 typedef std::ctype<char_type>
Base;
171 UserCtype (
const unsigned*,
const unsigned*, _RWSTD_SIZE_T = 0);
176 do_is (mask, char_type)
const;
178 virtual const char_type*
179 do_is (
const char_type*,
const char_type*, mask*)
const;
181 virtual const char_type*
182 do_scan_is (mask,
const char_type*,
const char_type*)
const;
184 virtual const char_type*
185 do_scan_not (mask,
const char_type*,
const char_type*)
const;
188 do_toupper (char_type)
const;
190 virtual const char_type*
191 do_toupper (char_type*,
const char_type*)
const;
194 do_tolower (char_type)
const;
196 virtual const char_type*
197 do_tolower (char_type*,
const char_type*)
const;
200 do_widen (
char)
const;
203 do_widen (
const char*,
const char*, char_type*)
const;
206 do_narrow (char_type,
char)
const;
208 virtual const char_type*
209 do_narrow (
const char_type*,
const char_type*,
char,
char*)
const;
222 typedef std::locale::facet
Base;
228 ctype (_RWSTD_SIZE_T = 0);
231 ctype (
const unsigned*,
const unsigned*, _RWSTD_SIZE_T = 0);
234 is (mask
m, char_type
c)
const {
239 is (
const char_type* lo,
const char_type *hi, mask *vec)
const {
240 return do_is (lo, hi, vec);
244 scan_is (mask
m,
const char_type *lo,
const char_type *hi)
const {
245 return do_scan_is (
m, lo, hi);
249 scan_not (mask
m,
const char_type *lo,
const char_type *hi)
const {
250 return do_scan_not (
m, lo, hi);
254 (toupper)(char_type
c)
const {
255 return do_toupper (
c);
259 (toupper)(char_type *lo,
const char_type *hi)
const {
260 return do_toupper (lo, hi);
264 (tolower)(char_type
c)
const {
265 return do_tolower (
c);
269 (tolower)(char_type *lo,
const char_type *hi)
const {
270 return do_tolower (lo, hi);
279 widen (
const char *lo,
const char *hi, char_type *to)
const {
280 return do_widen (lo, hi, to);
284 narrow (char_type
c,
char dfault)
const {
285 return do_narrow (
c, dfault);
289 narrow (
const char_type *lo,
const char_type *hi,
290 char dfault,
char *to)
const {
291 return do_narrow (lo, hi, dfault, to);
294 static std::locale::id id;
299 do_is (mask, char_type)
const;
301 virtual const char_type*
302 do_is (
const char_type*,
const char_type*, mask*)
const;
304 virtual const char_type*
305 do_scan_is (mask,
const char_type*,
const char_type*)
const;
307 virtual const char_type*
308 do_scan_not (mask,
const char_type*,
const char_type*)
const;
311 do_toupper (char_type)
const;
313 virtual const char_type*
314 do_toupper (char_type*,
const char_type*)
const;
317 do_tolower (char_type
c)
const;
319 virtual const char_type*
320 do_tolower (char_type*,
const char_type*)
const;
323 do_widen (
char)
const;
326 do_widen (
const char*,
const char*, char_type*)
const;
329 do_narrow (char_type,
char dfault)
const;
331 virtual const char_type*
332 do_narrow (
const char_type*,
const char_type*,
char,
char*)
const;
340 :
public std::ctype<UserChar>
342 typedef std::ctype<UserChar>
Base;
351 UserCtype (
const unsigned*,
const unsigned*, _RWSTD_SIZE_T = 0);
const char * widen(char *dst, const char *src)
const char * narrow(char *dst, const char *src)
#define _RWSTD_SPECIALIZED_CLASS
#define _RWSTD_NAMESPACE(name)
UserCtype(const unsigned *, const unsigned *, _RWSTD_SIZE_T=0)
UserCtype(_RWSTD_SIZE_T=0)
UserCtype(const unsigned *a, const unsigned *b, _RWSTD_SIZE_T c=0)
UserCtype(_RWSTD_SIZE_T=0)
UserCtype(_RWSTD_SIZE_T=0)
UserCtype(const unsigned *, const unsigned *, _RWSTD_SIZE_T=0)
virtual const char * what() const =0
_RWSTD_SIZE_T n_all_calls_