Standard C++ Library Reference ISO/IEC (VERSION3)
 const char *first, const char *last) const;
 char toupper(char ch) const;
 const char *toupper(char *first, char *last) const;
 char tolower(char ch) const;
 const char *tolower(char *first, char *last) const;
 char widen(char byte) const;
 const char *widen(char *first, char *last,
 char *dest) const;
 char narrow(char ch, char dflt) const;
 const char *narrow(const char *first,
 const char *last, char dflt, char *dest) const;
 static locale::id id;
protected:
 ~ctype();
 virtual char do_toupper(char ch) const;
 virtual const char *do_toupper(char *first,
 char *last) const;
 virtual char do_tolower(char ch) const;
 virtual const char *do_tolower(char *first,
 char *last) const;
 virtual char do_widen(char ch) const;
 virtual const char *do_widen(char *first, char *last,
 char *dest) const;
 virtual char do_narrow(char ch, char dflt) const;
 virtual const char *do_narrow(const char *first,
 const char *last, char dflt, char *dest) const;
 const mask *table() const throw();
 static const mask *classic_table() const throw();
 static const size_t table_size;
 };
The class is an explicit specialization of template class ctype for type char. Hence, it describes an object that can serve
as a locale facet, to characterize various properties of a ``character'' (element) of type char. The explicit specialization
differs from the template class in several ways:
An object of class ctype<char> stores a pointer to the first element of a ctype mask table, an array of
UCHAR_MAX + 1 elements of type ctype_base::mask. It also stores a boolean object that indicates whether
the array should be deleted (using operator delete[]) when the ctype<Elem> object is destroyed.
● 
Its sole public constructor lets you specify tab, the ctype mask table, and del, the boolean object that is true if
the array should be deleted when the ctype<char> object is destroyed -- as well as the usual reference-count
parameter refs.
● 
The protected member function table() returns the stored ctype mask table.● 
The static member object table_size specifies the minimum number of elements in a ctype mask table.● 
The protected static member function classic_table() returns the ctype mask table appropriate to the "C"
locale.
● 
There are no protected virtual member functions do_is, do_scan_is, or do_scan_not. The corresponding
public member functions perform the equivalent operations themselves.
● 
The member functions do_narrow and do_widen simply copy elements unaltered.● 










