## ctype_byname

                               ctype_base
    ctype_bynamectype
                              locale::facet

- Summary
- Data Type and Member Function Indexes
- Synopsis
- Description
- Interface
- Constructors
- See Also

### Summary

A facet that includes character classification facilities based on the named locales.

### Data Type and Member Function Indexes
(exclusive of constructors and destructors)

None

### Synopsis

    #include <locale>
    template <class charT> class ctype_byname;
    template <> class ctype_byname<char>;

### Description

ctype_byname<charT> template and ctype_byname<char> specialization include the same functions as the ctype<charT> template, but specific to a particular named locale. For a description of the member functions of ctype_byname, see the reference for ctype<charT>. Only the constructor is described here.

### Interface

    template <class charT>
    class ctype_byname : public ctype<charT> {
    public:
      explicit ctype_byname(const char*, size_t = 0);
    protected:
      ~ctype_byname();  // virtual
      virtual bool         do_is(mask, charT) const;
      virtual const charT* do_is(const charT*, const charT*,
                                 mask*) const;
      virtual const char*  do_scan_is(mask,
                                      const charT*,
                                      const charT*) const;
      virtual const char*  do_scan_not(mask,
                                       const charT*,
                                       const charT*) const;
      virtual charT        do_toupper(charT) const;
      virtual const charT* do_toupper(charT*,
                                      const charT*) const;
      virtual charT        do_tolower(charT) const;
      virtual const charT* do_tolower(charT*,
                                      const charT*) const;
      virtual charT        do_widen(char) const;
      virtual const char*  do_widen(const char*, const char*,
                                    charT*) const;
      virtual char         do_narrow(charT, char) const;

      virtual const charT* do_narrow(const charT*, const charT*,
                                     char, char*) const;
    };

    class ctype_byname<char> : public ctype<char> {
    public:
      explicit ctype_byname(const char*, size_t = 0);
    protected:
      ~ctype_byname();  // virtual
      virtual char        do_toupper(char) const;
      virtual const char* do_toupper(char*, const char*) const;
      virtual char        do_tolower(char) const;
      virtual const char* do_tolower(char*, const char*) const;
    };

### Constructors

    explicit ctype_byname(const char* name, size_t refs = 0);

Constructs a ctype_byname facet. The facet classifies characters relative to the named locale specified by the `name` argument. If the `refs` argument is `0`, then destruction of the object is delegated to the locale, or locales, containing it. This allows the user to ignore lifetime management issues. On the other hand, if `refs` is `1`, then the object must be explicitly deleted; the locale does not do so.

### See Also

locale, facets, collate, ctype<char>

Copyright (c) 1998, Rogue Wave Software, Inc.
Send mail to report errors or comment on the documentation.
OEM Release, June 1998