home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / stlpt453.zip / STLport-4.5.3 / stlport / stl / _ctraits_fns.h < prev    next >
C/C++ Source or Header  |  2001-01-26  |  3KB  |  96 lines

  1. /*
  2.  * Copyright (c) 1999
  3.  * Silicon Graphics Computer Systems, Inc.
  4.  *
  5.  * Permission to use, copy, modify, distribute and sell this software
  6.  * and its documentation for any purpose is hereby granted without fee,
  7.  * provided that the above copyright notice appear in all copies and
  8.  * that both that copyright notice and this permission notice appear
  9.  * in supporting documentation.  Silicon Graphics makes no
  10.  * representations about the suitability of this software for any
  11.  * purpose.  It is provided "as is" without express or implied warranty.
  12.  */ 
  13.  
  14. // WARNING: This is an internal header file, included by other C++
  15. // standard library headers.  You should not attempt to use this header
  16. // file directly.
  17.  
  18. #ifndef _STLP_INTERNAL_CTRAITS_FUNCTIONS_H
  19. #define _STLP_INTERNAL_CTRAITS_FUNCTIONS_H
  20.  
  21. # ifndef _STLP_INTERNAL_FUNCTION_H 
  22. #  include <stl/_function_base.h>
  23. # endif
  24.  
  25. // This file contains a few small adapters that allow a character
  26. // traits class to be used as a function object.
  27.  
  28. _STLP_BEGIN_NAMESPACE
  29.  
  30. template <class _Traits>
  31. struct _Eq_traits
  32.   : public binary_function<typename _Traits::char_type,
  33.                            typename _Traits::char_type,
  34.                            bool>
  35. {
  36.   bool operator()(const typename _Traits::char_type& __x,
  37.                   const typename _Traits::char_type& __y) const
  38.     { return _Traits::eq(__x, __y); }
  39. };
  40.  
  41. template <class _Traits>
  42. struct _Eq_char_bound
  43.   : public unary_function<typename _Traits::char_type, bool>
  44. {
  45.   typename _Traits::char_type __val;
  46.   _Eq_char_bound(typename _Traits::char_type __c) : __val(__c) {}
  47.   bool operator()(const typename _Traits::char_type& __x) const
  48.     { return _Traits::eq(__x, __val); }
  49. };
  50.  
  51. template <class _Traits>
  52. struct _Neq_char_bound
  53.   : public unary_function<typename _Traits::char_type, bool>
  54. {
  55.   typename _Traits::char_type __val;
  56.   _Neq_char_bound(typename _Traits::char_type __c) : __val(__c) {}
  57.   bool operator()(const typename _Traits::char_type& __x) const
  58.     { return !_Traits::eq(__x, __val); }
  59. };
  60.  
  61. template <class _Traits>
  62. struct _Eq_int_bound
  63.   : public unary_function<typename _Traits::char_type, bool>
  64. {
  65.   typename _Traits::int_type __val;
  66.  
  67.   _Eq_int_bound(typename _Traits::int_type __c) : __val(__c) {}
  68.   bool operator()(const typename _Traits::char_type& __x) const
  69.     { return _Traits::eq_int_type(_Traits::to_int_type(__x), __val); }
  70. };
  71.  
  72. # if 0
  73. template <class _Traits>
  74. struct _Lt_traits
  75.   : public binary_function<typename _Traits::char_type,
  76.                            typename _Traits::char_type,
  77.                            bool>
  78. {
  79.   bool operator()(const typename _Traits::char_type& __x,
  80.                   const typename _Traits::char_type& __y) const
  81.     { return _Traits::lt(__x, __y); }
  82. };
  83. # endif
  84.  
  85. _STLP_END_NAMESPACE
  86.  
  87. #endif /* _STLP_INTERNAL_CTRAITS_FUNCTIONS_H */
  88.  
  89. // Local Variables:
  90. // mode:C++
  91. // End:
  92.  
  93.  
  94.  
  95.  
  96.