In the following member descriptions, for
unsigned char
values
v where
v >= table_size,
table()[v] is assumed to have an
implementation-specific value (possibly different for each
such value
v) without performing the array lookup
. explicit ctype(const mask* tbl = 0, bool del = false,
size_t refs = 0);
Requires:
tbl either 0 or an array of at least
table_size
elements
. Effects:
Passes its
refs argument to its base class constructor
. bool is(mask m, char c) const;
const char* is(const char* low, const char* high,
mask* vec) const;
Effects:
The second form, for all
*p
in the range
[low, high),
assigns
into
vec[p - low]
the value
table()[(unsigned char)*p]. Returns:
The first form returns
table()[(unsigned char)c] & m;
the second form returns
high. const char* scan_is(mask m,
const char* low, const char* high) const;
Returns:
The smallest
p
in the range
[low, high)
such that
table()[(unsigned char) *p] & m
is
true. const char* scan_not(mask m,
const char* low, const char* high) const;
Returns:
The smallest
p
in the range
[low, high)
such that
table()[(unsigned char) *p] & m
is
false. char toupper(char c) const;
const char* toupper(char* low, const char* high) const;
Returns:
do_toupper(c)
or
do_toupper(low, high),
respectively
. char tolower(char c) const;
const char* tolower(char* low, const char* high) const;
Returns:
do_tolower(c)
or
do_tolower(low, high),
respectively
. char widen(char c) const;
const char* widen(const char* low, const char* high,
char* to) const;
Returns:
do_widen(c)
or
do_widen(low, high, to),
respectively
. char narrow(char c, char dfault) const;
const char* narrow(const char* low, const char* high,
char dfault, char* to) const;
Returns:
do_narrow(c, dfault)
or
do_narrow(low, high, dfault, to),
respectively
. const mask* table() const noexcept;
Returns:
The first constructor argument, if it was nonzero, otherwise
classic_table().