30 #ifndef _STLP_INTERNAL_FUNCTION_BASE_H 31 #define _STLP_INTERNAL_FUNCTION_BASE_H 33 #if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_TYPE_TRAITS_H) 39 template <
class _Arg,
class _Result>
43 #if !defined (__BORLANDC__) || (__BORLANDC__ < 0x580) 52 template <
class _Arg1,
class _Arg2,
class _Result>
57 #if !defined (__BORLANDC__) || (__BORLANDC__ < 0x580) 66 bool operator()(
const _Tp& __x,
const _Tp& __y)
const {
return __x == __y; }
71 #if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) 79 bool operator()(
const _Tp& __x,
const _Tp& __y)
const {
return __x < __y; }
81 #if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) 82 void _M_swap_workaround(
less<_Tp>& __x) {}
86 #if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) 89 #if !defined (__BORLANDC__) 115 _Tp
operator()(
const _Tp& __x,
const _Tp& __y)
const {
return __x + __y; }
120 _Tp
operator()(
const _Tp& __x,
const _Tp& __y)
const {
return __x - __y; }
135 _Tp
operator()(
const _Tp& __x,
const _Tp& __y)
const {
return __x * __y; }
140 template <
class _Pair>
142 const typename _Pair::first_type&
operator()(
const _Pair& __x)
const {
147 template <
class _Pair>
149 const typename _Pair::second_type&
operator()(
const _Pair& __x)
const {
155 template <
class _Arg1,
class _Arg2>
157 _Arg1
operator()(
const _Arg1& __x,
const _Arg2&)
const {
return __x; }
160 template <
class _Arg1,
class _Arg2>
162 _Arg2
operator()(
const _Arg1&,
const _Arg2& __y)
const {
return __y; }
165 #if defined (_STLP_MULTI_CONST_TEMPLATE_ARG_BUG) 167 template <
class _Pair,
class _Whatever>
169 struct __Select1st_hint :
public unary_function<_Pair, _Whatever> {
170 const _Whatever& operator () (
const _Pair& __x)
const {
return __x.first; }
172 # define _STLP_SELECT1ST(__x,__y) _STLP_PRIV __Select1st_hint< __x, __y > 174 # define _STLP_SELECT1ST(__x, __y) _STLP_PRIV _Select1st< __x > 182 template <
class _Result,
class _Argument>
192 template <
class _Result,
class _Arg1,
class _Arg2>
_Arg1 first_argument_type
equal_to< _Tp > __equal_to(_Tp *)
_Tp operator()(const _Tp &__x, const _Tp &__y) const
_Arg1 operator()(const _Arg1 &__x, const _Arg2 &) const
__bool2type< pod >::_Ret is_POD_type
_Arg2 second_argument_type
_Tp __identity_element(plus< _Tp >)
_STLP_MOVE_TO_PRIV_NAMESPACE less< _Tp > __less(_Tp *)
minus< _Tp > __minus(_Tp *)
#define _STLP_MOVE_TO_PRIV_NAMESPACE
_Constant_binary_fun(const _Result &__v)
const _Pair::second_type & operator()(const _Pair &__x) const
_Arg2 second_argument_type
_STLP_MOVE_TO_PRIV_NAMESPACE plus< _Tp > __plus(_Tp *)
_Tp operator()(const _Tp &__x, const _Tp &__y) const
bool operator()(const _Tp &__x, const _Tp &__y) const
#define _STLP_MOVE_TO_STD_NAMESPACE
_Arg1 first_argument_type
__bool2type< trivial_constructor >::_Ret has_trivial_default_constructor
const result_type & operator()(const _Argument &) const
_Tp operator()(const _Tp &__x, const _Tp &__y) const
const result_type & operator()(const _Arg1 &, const _Arg2 &) const
bool operator()(const _Tp &__x, const _Tp &__y) const
__bool2type< trivial_assign >::_Ret has_trivial_assignment_operator
#define _STLP_END_NAMESPACE
__bool2type< trivial_copy >::_Ret has_trivial_copy_constructor
const _Pair::first_type & operator()(const _Pair &__x) const
#define _STLP_BEGIN_NAMESPACE
_Arg2 operator()(const _Arg1 &, const _Arg2 &__y) const
__bool2type< trivial_destructor >::_Ret has_trivial_destructor
_Constant_unary_fun(const result_type &__v)
const _Tp & operator()(const _Tp &__x) const