home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_13_08 / plauger / traits.h < prev   
Encoding:
C/C++ Source or Header  |  1995-07-10  |  1.1 KB  |  36 lines

  1. ------------- Listing 1: The struct string_char_traits<char> ---------
  2.  
  3. template<class _E>
  4.     struct string_char_traits;
  5. struct string_char_traits<char> {
  6.     typedef char _E;
  7.     typedef _E char_type;
  8.     static void assign(_E& _X, const _E& _Y)
  9.         {_X = _Y; }
  10.     static bool eq(const _E& _X, const _E& _Y)
  11.         {return (_X == _Y); }
  12.     static bool ne(const _E& _X, const _E& _Y)
  13.         {return (!eq(_X, _Y)); }
  14.     static bool lt(const _E& _X, const _E& _Y)
  15.         {return (_X < _Y); }
  16.     static _E eos()
  17.         {return ('\0'); }
  18.     static basic_istream<_E, ios_traits<_E> >&
  19.         char_in(basic_istream<_E, ios_traits<_E> >& _I, _E& _X)
  20.         {_I.get(_X);
  21.         return (_I); }
  22.     static basic_ostream<_E, ios_traits<_E> >&
  23.         char_out(basic_ostream<_E, ios_traits<_E> >& _O, _E _X)
  24.         {_O.put(_X);
  25.         return (_O); }
  26.     static bool is_del(_E _X)
  27.         {return (isspace((int)_X)); }
  28.     static int compare(const _E *_U, const _E *_V, size_t _N)
  29.         {return (memcmp(_U, _V, _N)); }
  30.     static size_t length(const _E *_U)
  31.         {return (strlen(_U)); }
  32.     static _E *copy(_E *_U, const _E *_V, size_t _N)
  33.         {return ((_E *)memcpy(_U, _V, _N)); }
  34.     };
  35.  
  36.