1 _ctraits_fns.h |
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 |