cpp/locale/ctype/narrow

@1,2@ Public member function, calls the corresponding protected virtual member function overload of the most derived class. Overload (1) calls, overload (2) calls.

@3@ Converts the (possibly wide) character to multibyte representation if the character can be represented with a single byte (for example, ASCII characters in UTF-8 encoding are single bytes). Returns if such conversion does not exist.

@4@ For every character in the character array, writes narrowed characters (or whenever narrowing fails) to the successive locations in the character array pointed to by.

Narrowing is always successful and is always reversible (by calling widen) for all characters from the.
 * i.e. always holds for any character  in the.

Narrowing, if successful, preserves all character classification categories known to is.
 * i.e. is always  for any named  category with a  facet  and  value  (unless  returns ).

Narrowing of any digit character guarantees that if the result is subtracted from the character literal, the difference equals the digit value of the original character.
 * i.e. for any digit character, the expression evaluates to the digit value of the character.

Return value
@1,3@ narrowed character or if narrowing fails @2,4@