bool do_is(mask m, charT c) const;
const charT* do_is(const charT* low, const charT* high,
mask* vec) const;
Effects:
Classifies a character or sequence of characters
. For each argument character, identifies a value
M
of type
ctype_base::mask. The second form identifies a value
M of type
ctype_base::mask
for each
*p
where
(low <= p && p < high),
and places it into
vec[p - low].Returns:
The first form returns the result of the expression
(M & m) != 0;
i.e.,
true
if the character has the characteristics specified
. The second form returns
high.const charT* do_scan_is(mask m, const charT* low, const charT* high) const;
Effects:
Locates a character in a buffer that conforms to a classification
m. Returns:
The smallest pointer
p in the range
[low, high)
such that
is(m, *p)
would return
true;
otherwise, returns
high. const charT* do_scan_not(mask m, const charT* low, const charT* high) const;
Effects:
Locates a character in a buffer that fails to conform to a classification
m. Returns:
The smallest pointer
p, if any, in the range
[low, high)
such that
is(m, *p)
would return
false;
otherwise, returns
high. charT do_toupper(charT c) const;
const charT* do_toupper(charT* low, const charT* high) const;
Effects:
Converts a character or characters to upper case
. The second form replaces each character
*p
in the range
[low, high)
for which a corresponding upper-case character exists, with
that character
.Returns:
The first form returns the corresponding upper-case character if it
is known to exist, or its argument if not
. The second form returns
high.charT do_tolower(charT c) const;
const charT* do_tolower(charT* low, const charT* high) const;
Effects:
Converts a character or characters to lower case
. The second form replaces each character
*p
in the range
[low, high)
and for which a corresponding lower-case character exists,
with that character
.Returns:
The first form returns the corresponding lower-case character if it
is known to exist, or its argument if not
. The second form returns
high.charT do_widen(char c) const;
const char* do_widen(const char* low, const char* high,
charT* dest) const;
Effects:
Applies the simplest reasonable transformation from a
char
value or sequence of
char
values to the corresponding
charT
value or values
.
The only characters for which unique transformations are required
are those in the basic source character set (
[lex.charset])
.For any named
ctype
category with a
ctype <charT>
facet
ctc and valid
ctype_base::mask
value
M,
(ctc.is(M, c) || !is(M, do_widen(c)) )
is
true. The second form transforms each character
*p
in the range
[low, high),
placing the result in
dest[p - low].Returns:
The first form returns the transformed value
. The second form returns
high.char do_narrow(charT c, char dfault) const;
const charT* do_narrow(const charT* low, const charT* high,
char dfault, char* dest) const;
Effects:
Applies the simplest reasonable transformation from a
charT
value or sequence of
charT
values to the corresponding
char
value or values
. For any character
c in the basic source character set (
[lex.charset])
the transformation is such that
do_widen(do_narrow(c, 0)) == c
For any named
ctype
category with a
ctype<char>
facet
ctc however, and
ctype_base::mask
value
M,
(is(M, c) || !ctc.is(M, do_narrow(c, dfault)) )
is
true
(unless
do_narrow
returns
dfault)
. In addition, for any digit character
c,
the expression
(do_narrow(c, dfault) - '0')
evaluates to the digit value of the character
. The second form transforms each character
*p
in the range
[low, high),
placing the result (or
dfault
if no simple transformation is readily available) in
dest[p - low].Returns:
The first form returns the transformed value; or
dfault
if no mapping is readily available
. The second form returns
high.