62#if defined (_STLP_DONT_RETURN_VOID) && defined (_STLP_NO_CLASS_PARTIAL_SPECIALIZATION) && defined (_STLP_MEMBER_TEMPLATE_CLASSES)
64template<
class _Result,
class _Tp>
67 typedef _Result (_Tp::*__fun_type) ();
68 explicit _Mem_fun0_ptr(__fun_type __f) : _M_f(__f) {}
71 _Result operator ()(_Tp* __p)
const {
return (__p->*_M_f)(); }
77template<
class _Result,
class _Tp,
class _Arg>
80 typedef _Result (_Tp::*__fun_type) (_Arg);
81 explicit _Mem_fun1_ptr(__fun_type __f) : _M_f(__f) {}
84 _Result operator ()(_Tp* __p, _Arg __x)
const {
return (__p->*_M_f)(__x); }
90template<
class _Result,
class _Tp>
91class _Const_mem_fun0_ptr :
public unary_function<const _Tp*,_Result> {
93 typedef _Result (_Tp::*__fun_type) ()
const;
94 explicit _Const_mem_fun0_ptr(__fun_type __f) : _M_f(__f) {}
97 _Result operator ()(
const _Tp* __p)
const {
return (__p->*_M_f)(); }
103template<
class _Result,
class _Tp,
class _Arg>
104class _Const_mem_fun1_ptr :
public binary_function<const _Tp*,_Arg,_Result> {
106 typedef _Result (_Tp::*__fun_type) (_Arg)
const;
107 explicit _Const_mem_fun1_ptr(__fun_type __f) : _M_f(__f) {}
110 _Result operator ()(
const _Tp* __p, _Arg __x)
const {
111 return (__p->*_M_f)(__x); }
117template<
class _Result,
class _Tp>
120 typedef _Result (_Tp::*__fun_type) ();
121 explicit _Mem_fun0_ref(__fun_type __f) : _M_f(__f) {}
124 _Result operator ()(_Tp& __p)
const {
return (__p.*_M_f)(); }
130template<
class _Result,
class _Tp,
class _Arg>
133 typedef _Result (_Tp::*__fun_type) (_Arg);
134 explicit _Mem_fun1_ref(__fun_type __f) : _M_f(__f) {}
137 _Result operator ()(_Tp& __p, _Arg __x)
const {
return (__p.*_M_f)(__x); }
143template<
class _Result,
class _Tp>
146 typedef _Result (_Tp::*__fun_type) ()
const;
147 explicit _Const_mem_fun0_ref(__fun_type __f) : _M_f(__f) {}
150 _Result operator ()(
const _Tp& __p)
const {
return (__p.*_M_f)(); }
156template<
class _Result,
class _Tp,
class _Arg>
159 typedef _Result (_Tp::*__fun_type) (_Arg)
const;
160 explicit _Const_mem_fun1_ref(__fun_type __f) : _M_f(__f) {}
163 _Result operator ()(
const _Tp& __p, _Arg __x)
const {
return (__p.*_M_f)(__x); }
169template<
class _Result>
170struct _Mem_fun_traits {
173 typedef _Mem_fun0_ptr<_Result,_Tp> _Ptr;
174 typedef _Const_mem_fun0_ptr<_Result,_Tp> _Ptr_const;
175 typedef _Mem_fun0_ref<_Result,_Tp> _Ref;
176 typedef _Const_mem_fun0_ref<_Result,_Tp> _Ref_const;
179 template<
class _Tp,
class _Arg>
181 typedef _Mem_fun1_ptr<_Result,_Tp,_Arg> _Ptr;
182 typedef _Const_mem_fun1_ptr<_Result,_Tp,_Arg> _Ptr_const;
183 typedef _Mem_fun1_ref<_Result,_Tp,_Arg> _Ref;
184 typedef _Const_mem_fun1_ref<_Result,_Tp,_Arg> _Ref_const;
188template<
class _Arg,
class _Result>
191 typedef _Result (*__fun_type) (_Arg);
192 explicit _Ptr_fun1_base(__fun_type __f) : _M_f(__f) {}
195 _Result operator()(_Arg __x)
const {
return _M_f(__x); }
201template <
class _Arg1,
class _Arg2,
class _Result>
204 typedef _Result (*__fun_type) (_Arg1, _Arg2);
205 explicit _Ptr_fun2_base(__fun_type __f) : _M_f(__f) {}
208 _Result operator()(_Arg1 __x, _Arg2 __y)
const {
return _M_f(__x, __y); }
214template<
class _Result>
215struct _Ptr_fun_traits {
216 template<
class _Arg>
struct _Args1 {
217 typedef _Ptr_fun1_base<_Arg,_Result> _Fun;
220 template<
class _Arg1,
class _Arg2>
struct _Args2 {
221 typedef _Ptr_fun2_base<_Arg1,_Arg2,_Result> _Fun;
229 typedef void (_Tp::*__fun_type) ();
230 explicit _Void_mem_fun0_ptr(__fun_type __f) : _M_f(__f) {}
233 void operator ()(_Tp* __p)
const { (__p->*_M_f)(); }
239template<
class _Tp,
class _Arg>
242 typedef void (_Tp::*__fun_type) (_Arg);
243 explicit _Void_mem_fun1_ptr(__fun_type __f) : _M_f(__f) {}
246 void operator ()(_Tp* __p, _Arg __x)
const { (__p->*_M_f)(__x); }
253class _Void_const_mem_fun0_ptr :
public unary_function<const _Tp*,void> {
255 typedef void (_Tp::*__fun_type) ()
const;
256 explicit _Void_const_mem_fun0_ptr(__fun_type __f) : _M_f(__f) {}
259 void operator ()(
const _Tp* __p)
const { (__p->*_M_f)(); }
265template<
class _Tp,
class _Arg>
266class _Void_const_mem_fun1_ptr :
public binary_function<const _Tp*,_Arg,void> {
268 typedef void (_Tp::*__fun_type) (_Arg)
const;
269 explicit _Void_const_mem_fun1_ptr(__fun_type __f) : _M_f(__f) {}
272 void operator ()(
const _Tp* __p, _Arg __x)
const { (__p->*_M_f)(__x); }
281 typedef void (_Tp::*__fun_type) ();
282 explicit _Void_mem_fun0_ref(__fun_type __f) : _M_f(__f) {}
285 void operator ()(_Tp& __p)
const { (__p.*_M_f)(); }
291template<
class _Tp,
class _Arg>
294 typedef void (_Tp::*__fun_type) (_Arg);
295 explicit _Void_mem_fun1_ref(__fun_type __f) : _M_f(__f) {}
298 void operator ()(_Tp& __p, _Arg __x)
const { (__p.*_M_f)(__x); }
307 typedef void (_Tp::*__fun_type) ()
const;
308 explicit _Void_const_mem_fun0_ref(__fun_type __f) : _M_f(__f) {}
311 void operator ()(
const _Tp& __p)
const { (__p.*_M_f)(); }
317template<
class _Tp,
class _Arg>
318class _Void_const_mem_fun1_ref :
public binary_function<_Tp,_Arg,void> {
320 typedef void (_Tp::*__fun_type) (_Arg)
const;
321 explicit _Void_const_mem_fun1_ref(__fun_type __f) : _M_f(__f) {}
324 void operator ()(
const _Tp& __p, _Arg __x)
const { (__p.*_M_f)(__x); }
331struct _Mem_fun_traits<
void> {
332 template<
class _Tp>
struct _Args0 {
333 typedef _Void_mem_fun0_ptr<_Tp> _Ptr;
334 typedef _Void_const_mem_fun0_ptr<_Tp> _Ptr_const;
335 typedef _Void_mem_fun0_ref<_Tp> _Ref;
336 typedef _Void_const_mem_fun0_ref<_Tp> _Ref_const;
339 template<
class _Tp,
class _Arg>
struct _Args1 {
340 typedef _Void_mem_fun1_ptr<_Tp,_Arg> _Ptr;
341 typedef _Void_const_mem_fun1_ptr<_Tp,_Arg> _Ptr_const;
342 typedef _Void_mem_fun1_ref<_Tp,_Arg> _Ref;
343 typedef _Void_const_mem_fun1_ref<_Tp,_Arg> _Ref_const;
350 typedef void (*__fun_type) (_Arg);
351 explicit _Ptr_void_fun1_base(__fun_type __f) : _M_f(__f) {}
354 void operator()(_Arg __x)
const { _M_f(__x); }
360template <
class _Arg1,
class _Arg2>
363 typedef void (*__fun_type) (_Arg1, _Arg2);
364 explicit _Ptr_void_fun2_base(__fun_type __f) : _M_f(__f) {}
367 void operator()(_Arg1 __x, _Arg2 __y)
const { _M_f(__x, __y); }
374struct _Ptr_fun_traits<
void> {
375 template<
class _Arg>
struct _Args1 {
376 typedef _Ptr_void_fun1_base<_Arg> _Fun;
379 template<
class _Arg1,
class _Arg2>
struct _Args2 {
380 typedef _Ptr_void_fun2_base<_Arg1,_Arg2> _Fun;
388template<
class _Result,
class _Arg>
392 typedef typename _Ptr_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Arg>::_Fun _Base;
393 explicit _Ptr_fun1(
typename _Base::__fun_type __f) : _Base(__f) {}
396template<
class _Result,
class _Arg1,
class _Arg2>
400 typedef typename _Ptr_fun_traits<_Result>::_STLP_TEMPLATE _Args2<_Arg1,_Arg2>::_Fun _Base;
401 explicit _Ptr_fun2(
typename _Base::__fun_type __f) : _Base(__f) {}
404template <
class _Result,
class _Tp>
408 _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args0<_Tp>::_Ptr _Base;
410 explicit mem_fun_t(
typename _Base::__fun_type __f) : _Base(__f) {}
413template <
class _Result,
class _Tp>
417 _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args0<_Tp>::_Ptr_const _Base;
419 explicit const_mem_fun_t(
typename _Base::__fun_type __f) : _Base(__f) {}
422template <
class _Result,
class _Tp>
426 _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args0<_Tp>::_Ref _Base;
428 explicit mem_fun_ref_t(
typename _Base::__fun_type __f) : _Base(__f) {}
431template <
class _Result,
class _Tp>
435 _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args0<_Tp>::_Ref_const _Base;
440template <
class _Result,
class _Tp,
class _Arg>
444 _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ptr _Base;
446 explicit mem_fun1_t(
typename _Base::__fun_type __f) : _Base(__f) {}
449template <
class _Result,
class _Tp,
class _Arg>
451 public _Mem_fun_traits<_Result>
::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ptr_const {
453 _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ptr_const _Base;
458template <
class _Result,
class _Tp,
class _Arg>
462 _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ref _Base;
464 explicit mem_fun1_ref_t(
typename _Base::__fun_type __f) : _Base(__f) {}
467template <
class _Result,
class _Tp,
class _Arg>
469 public _Mem_fun_traits<_Result>
::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ref_const {
471 _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ref_const _Base;
476template <
class _Arg,
class _Result>
478 public _Ptr_fun1<_Result,_Arg> {
480 _Ptr_fun1<_Result,_Arg>::__fun_type __fun_type;
483 : _Ptr_fun1<_Result,_Arg>(__f) {}
486template <
class _Arg1,
class _Arg2,
class _Result>
488 public _Ptr_fun2<_Result,_Arg1,_Arg2> {
490 _Ptr_fun2<_Result,_Arg1,_Arg2>::__fun_type __fun_type;
493 : _Ptr_fun2<_Result,_Arg1,_Arg2>(__f) {}
498template <
class _Ret,
class _Tp>
508template <
class _Ret,
class _Tp>
518template <
class _Ret,
class _Tp>
528template <
class _Ret,
class _Tp>
538template <
class _Ret,
class _Tp,
class _Arg>
548template <
class _Ret,
class _Tp,
class _Arg>
554 {
return (__p->*
_M_f)(__x); }
559template <
class _Ret,
class _Tp,
class _Arg>
569template <
class _Ret,
class _Tp,
class _Arg>
579template <
class _Arg,
class _Result>
589template <
class _Arg1,
class _Arg2,
class _Result>
603# if defined (_STLP_DONT_RETURN_VOID) && !defined (_STLP_NO_CLASS_PARTIAL_SPECIALIZATION)
645template <
class _Tp,
class _Arg>
655template <
class _Tp,
class _Arg>
661 void operator()(
const _Tp* __p, _Arg __x)
const { (__p->*
_M_f)(__x); }
666template <
class _Tp,
class _Arg>
677template <
class _Tp,
class _Arg>
683 void operator()(
const _Tp& __r, _Arg __x)
const { (__r.*
_M_f)(__x); }
690 typedef void (*__fun_type)(_Arg);
698template <
class _Arg1,
class _Arg2>
700 typedef void (*__fun_type)(_Arg1, _Arg2);
712#if !defined (_STLP_MEMBER_POINTER_PARAM_BUG)
718template <
class _Result,
class _Tp>
722template <
class _Result,
class _Tp>
726template <
class _Result,
class _Tp>
730template <
class _Result,
class _Tp>
734template <
class _Result,
class _Tp,
class _Arg>
738template <
class _Result,
class _Tp,
class _Arg>
742template <
class _Result,
class _Tp,
class _Arg>
746template <
class _Result,
class _Tp,
class _Arg>
750# if !(defined (_STLP_NO_EXTENSIONS) || defined (_STLP_NO_ANACHRONISMS))
753template <
class _Result,
class _Tp,
class _Arg>
757template <
class _Result,
class _Tp,
class _Arg>
761template <
class _Result,
class _Tp,
class _Arg>
765template <
class _Result,
class _Tp,
class _Arg>
773template <
class _Arg,
class _Result>
778template <
class _Arg1,
class _Arg2,
class _Result>
mem_fun1_t< _Result, _Tp, _Arg > mem_fun1(_Result(_Tp::*__f)(_Arg))
pointer_to_unary_function< _Arg, _Result > ptr_fun(_Result(*__f)(_Arg))
mem_fun1_ref_t< _Result, _Tp, _Arg > mem_fun1_ref(_Result(_Tp::*__f)(_Arg))
mem_fun_ref_t< _Result, _Tp > mem_fun_ref(_Result(_Tp::*__f)())
mem_fun_t< _Result, _Tp > mem_fun(_Result(_Tp::*__f)())
_Ret operator()(const _Tp &__r, _Arg __x) const
_Ret(_Tp::* __fun_type)(_Arg) const
const_mem_fun1_ref_t(__fun_type __pf)
_Ret operator()(const _Tp *__p, _Arg __x) const
const_mem_fun1_t(__fun_type __pf)
_Ret(_Tp::* __fun_type)(_Arg) const
_Ret operator()(const _Tp &__r) const
const_mem_fun_ref_t(__fun_type __pf)
_Ret(_Tp::* __fun_type)(void) const
_Ret operator()(const _Tp *__p) const
_Ret(_Tp::* __fun_type)(void) const
const_mem_fun_t(__fun_type __pf)
mem_fun1_ref_t(__fun_type __pf)
_Ret operator()(_Tp &__r, _Arg __x) const
_Ret(_Tp::* __fun_type)(_Arg)
_Ret operator()(_Tp *__p, _Arg __x) const
mem_fun1_t(__fun_type __pf)
_Ret(_Tp::* __fun_type)(_Arg)
_Ret operator()(_Tp &__r) const
_Ret(_Tp::* __fun_type)(void)
mem_fun_ref_t(__fun_type __pf)
mem_fun_t(__fun_type __pf)
_Ret(_Tp::* __fun_type)(void)
_Ret operator()(_Tp *__p) const
_Result operator()(_Arg1 __x, _Arg2 __y) const
pointer_to_binary_function(_Result(*__x)(_Arg1, _Arg2))
_Result(* _M_ptr)(_Arg1, _Arg2)
pointer_to_binary_function()
_Result operator()(_Arg __x) const
pointer_to_unary_function()
pointer_to_unary_function(_Result(*__x)(_Arg))
#define _STLP_TEMPLATE_NULL
#define _STLP_PSPEC3(t1, t2, t3)
#define _STLP_PSPEC2(t1, t2)
#define _STLP_BEGIN_NAMESPACE
#define _STLP_END_NAMESPACE