United States    
COMPAQ STORE | PRODUCTS | SERVICES | SUPPORT
| CONTACT US | SEARCH
C++
char_traits (3C++std) - Tru64 UNIX
Standard C++ Library
Copyright 1996, Rogue Wave Software, Inc.

NAME

  char_traits_ - A traits class providing types and operations to the
  basic_string container and iostream classes.

SYNOPSIS

  #include <string>
  template <class charT> struct char_traits
  struct char_traits<char>; .
  struct char_traits<wchar_t>;

DESCRIPTION

  The char_traits struct provides elementary operations to instantiations of
  basic_string and iostream classes.  As with all traits classes, char_traits
  is used to specialize the behavior of a template.  In this case, the traits
  class provides functions based on character type to the basic_string
  template and to the templates that are part of the iostreams library.

  Specializations of char_traits are provided for char and wchar_t.  These
  are used to define, respectively, string and wstring,  cout and wcout, etc.

INTERFACE

  template <class charT> struct char_traits .
  {
  typedef charT                    char_type;
  typedef int                      int_type;
  typedef streampos                pos_type;
  typedef streamoff                off_type;
  typedef mbstate_t                state_type;

  static void assign (char_type&, const char_type&);
  static char_type* assign (char_type*, size_t, const char_type&);

  static bool eq (const char_type&, const char_type&);
  static bool lt (const char_type&, const char_type&);

  static int compare (const char_type*, const char_type*, size_t);
  static size_t length (const char_type * s);
  static const char_type*
   find (const char_type*, int, const char_type&);
  static char_type* move (char_type*,  const char_type*, size_t);
  static char_type* copy (char_type*,  const char_type*, size_t);

  static int_type not_eof(const int_type& c);
  static char_type to_char_type(const int_type& c);
  static int_type to_int_type(const char_type& c);
  static bool eq_int_type(const int_type& c1, const int_type& c2);
  static int_type eof();
  };

TYPE

  char_type
     The basic character type. Same as the template parameter.

  int_type
     A type that can represent all the character values of char_type as well
     as and end of file value.

  pos_type
     A type used to represent a position within a stream buffer.

  off_type
     A type used to represent an offset to a  position within a stream
     buffer.

  state_type
     A type used to represent the state class or type that is applied to the
     codecvt facet.  This type is only relevant for streams with a underlying
     character type that is multi-byte.

OPERATIONS

  static
  void assign(char_type& c1, const char_type& c2)
     Assigns one character value to another.  The value of c2 is assigned to
     c1.

  static
  char_type* assign(char_type* s, size_t n, const char_type& a)
     Assigns one character value to n elements of a character array. The
     value of a is assigned to n elements of s.

  static
  bool eq(const char_type& c1, const char_type& c2)
     Returns true if c1 equals c2.

  static
  bool lt(const char_type& c1, const char_type& c2)
     Returns true if c1 is less than c2.

  static
  int compare(const char_type* s1, const char_type* s2,
             size_t n)
                Compares n values from s1 with n values from s2.  Return 1 if
                s1 is greater than s2, -1 if s1 is less than s2, or 0 if they
                are equal.

  static
  size_t length(const char_type * s)
     Returns the length of the null terminated character array s.  The eos
     terminator is not counted.

  static
  const char_type* find(const char_type* s, int n,
        const char_type& a)
           Looks for the value of a in s.  Only n elements of s are examined.
           Returns a pointer to the matched element if one is found.
           Otherwise returns s + n.

  static
  char_type* move(char_type* s1, const char_type* s2, size_t n)
     Moves n values from s1 to s2.  The ranges of (s1,s1+n) and (s2,s2+n) may
     overlap.

  static
  char_type* copy(char_type* s1, const char_type* s2, size_t n)
     Copy n values from s1 to s2. The ranges of (s1,s1+n) and (s2,s2+n) may
     not overlap.

  static
  int_type not_eof(const int_type& c)
     Returns c if c is not equal to eof(),  otherwise returns 0.

  static
  int_type to_char_type(const int_type& c)
     Returns the char_type representation of c.  This value may not be useful
     if no such representation exists.

  static
  int_type to_int_type(const char_type& c)
     Returns the int_type representation of c.

  static
  bool eq_int_type(const int_type& c1, const int_type& c2)
     Returns true if c1 equals c2..

  static
  int_type eof()
     Returns EOF.

SEE ALSO

  basic_string, traits, basic_ostream, basic_istream, cout, cin, wcout, wcin

STANDARDS CONFORMANCE

  ANSI X3J16/ISO WG21 Joint C++ Committee
  

1.800.AT.COMPAQ

privacy and legal statement