56 #ifndef _STL_FUNCTION_H 57 #define _STL_FUNCTION_H 1 59 namespace std _GLIBCXX_VISIBILITY(default)
61 _GLIBCXX_BEGIN_NAMESPACE_VERSION
100 template<
typename _Arg,
typename _Result>
113 template<
typename _Arg1,
typename _Arg2,
typename _Result>
139 template<
typename _Tp>
143 operator()(
const _Tp& __x,
const _Tp& __y)
const 144 {
return __x + __y; }
148 template<
typename _Tp>
152 operator()(
const _Tp& __x,
const _Tp& __y)
const 153 {
return __x - __y; }
157 template<
typename _Tp>
161 operator()(
const _Tp& __x,
const _Tp& __y)
const 162 {
return __x * __y; }
166 template<
typename _Tp>
170 operator()(
const _Tp& __x,
const _Tp& __y)
const 171 {
return __x / __y; }
175 template<
typename _Tp>
179 operator()(
const _Tp& __x,
const _Tp& __y)
const 180 {
return __x % __y; }
184 template<
typename _Tp>
188 operator()(
const _Tp& __x)
const 203 template<
typename _Tp>
207 operator()(
const _Tp& __x,
const _Tp& __y)
const 208 {
return __x == __y; }
212 template<
typename _Tp>
216 operator()(
const _Tp& __x,
const _Tp& __y)
const 217 {
return __x != __y; }
221 template<
typename _Tp>
225 operator()(
const _Tp& __x,
const _Tp& __y)
const 226 {
return __x > __y; }
230 template<
typename _Tp>
234 operator()(
const _Tp& __x,
const _Tp& __y)
const 235 {
return __x < __y; }
239 template<
typename _Tp>
243 operator()(
const _Tp& __x,
const _Tp& __y)
const 244 {
return __x >= __y; }
248 template<
typename _Tp>
252 operator()(
const _Tp& __x,
const _Tp& __y)
const 253 {
return __x <= __y; }
267 template<
typename _Tp>
271 operator()(
const _Tp& __x,
const _Tp& __y)
const 272 {
return __x && __y; }
276 template<
typename _Tp>
280 operator()(
const _Tp& __x,
const _Tp& __y)
const 281 {
return __x || __y; }
285 template<
typename _Tp>
289 operator()(
const _Tp& __x)
const 296 template<
typename _Tp>
300 operator()(
const _Tp& __x,
const _Tp& __y)
const 301 {
return __x & __y; }
304 template<
typename _Tp>
308 operator()(
const _Tp& __x,
const _Tp& __y)
const 309 {
return __x | __y; }
312 template<
typename _Tp>
316 operator()(
const _Tp& __x,
const _Tp& __y)
const 317 {
return __x ^ __y; }
350 template<
typename _Predicate>
362 operator()(
const typename _Predicate::argument_type& __x)
const 363 {
return !_M_pred(__x); }
367 template<
typename _Predicate>
373 template<
typename _Predicate>
376 typename _Predicate::second_argument_type, bool>
386 operator()(
const typename _Predicate::first_argument_type& __x,
387 const typename _Predicate::second_argument_type& __y)
const 388 {
return !_M_pred(__x, __y); }
392 template<
typename _Predicate>
421 template<
typename _Arg,
typename _Result>
425 _Result (*_M_ptr)(_Arg);
435 operator()(_Arg __x)
const 436 {
return _M_ptr(__x); }
440 template<
typename _Arg,
typename _Result>
446 template<
typename _Arg1,
typename _Arg2,
typename _Result>
451 _Result (*_M_ptr)(_Arg1, _Arg2);
461 operator()(_Arg1 __x, _Arg2 __y)
const 462 {
return _M_ptr(__x, __y); }
466 template<
typename _Arg1,
typename _Arg2,
typename _Result>
472 template<
typename _Tp>
477 operator()(_Tp& __x)
const 481 operator()(
const _Tp& __x)
const 485 template<
typename _Pair>
489 typename _Pair::first_type&
490 operator()(_Pair& __x)
const 491 {
return __x.first; }
493 const typename _Pair::first_type&
494 operator()(
const _Pair& __x)
const 495 {
return __x.first; }
497 #if __cplusplus >= 201103L 498 template<
typename _Pair2>
499 typename _Pair2::first_type&
500 operator()(_Pair2& __x)
const 501 {
return __x.first; }
503 template<
typename _Pair2>
504 const typename _Pair2::first_type&
505 operator()(
const _Pair2& __x)
const 506 {
return __x.first; }
510 template<
typename _Pair>
514 typename _Pair::second_type&
515 operator()(_Pair& __x)
const 516 {
return __x.second; }
518 const typename _Pair::second_type&
519 operator()(
const _Pair& __x)
const 520 {
return __x.second; }
541 template<
typename _Ret,
typename _Tp>
550 operator()(_Tp* __p)
const 551 {
return (__p->*_M_f)(); }
559 template<
typename _Ret,
typename _Tp>
568 operator()(
const _Tp* __p)
const 569 {
return (__p->*_M_f)(); }
572 _Ret (_Tp::*_M_f)()
const;
577 template<
typename _Ret,
typename _Tp>
586 operator()(_Tp& __r)
const 587 {
return (__r.*_M_f)(); }
595 template<
typename _Ret,
typename _Tp>
604 operator()(
const _Tp& __r)
const 605 {
return (__r.*_M_f)(); }
608 _Ret (_Tp::*_M_f)()
const;
613 template<
typename _Ret,
typename _Tp,
typename _Arg>
622 operator()(_Tp* __p, _Arg __x)
const 623 {
return (__p->*_M_f)(__x); }
626 _Ret (_Tp::*_M_f)(_Arg);
631 template<
typename _Ret,
typename _Tp,
typename _Arg>
640 operator()(
const _Tp* __p, _Arg __x)
const 641 {
return (__p->*_M_f)(__x); }
644 _Ret (_Tp::*_M_f)(_Arg)
const;
649 template<
typename _Ret,
typename _Tp,
typename _Arg>
658 operator()(_Tp& __r, _Arg __x)
const 659 {
return (__r.*_M_f)(__x); }
662 _Ret (_Tp::*_M_f)(_Arg);
667 template<
typename _Ret,
typename _Tp,
typename _Arg>
676 operator()(
const _Tp& __r, _Arg __x)
const 677 {
return (__r.*_M_f)(__x); }
680 _Ret (_Tp::*_M_f)(_Arg)
const;
685 template<
typename _Ret,
typename _Tp>
687 mem_fun(_Ret (_Tp::*__f)())
690 template<
typename _Ret,
typename _Tp>
692 mem_fun(_Ret (_Tp::*__f)()
const)
695 template<
typename _Ret,
typename _Tp>
697 mem_fun_ref(_Ret (_Tp::*__f)())
700 template<
typename _Ret,
typename _Tp>
702 mem_fun_ref(_Ret (_Tp::*__f)()
const)
705 template<
typename _Ret,
typename _Tp,
typename _Arg>
707 mem_fun(_Ret (_Tp::*__f)(_Arg))
710 template<
typename _Ret,
typename _Tp,
typename _Arg>
712 mem_fun(_Ret (_Tp::*__f)(_Arg)
const)
715 template<
typename _Ret,
typename _Tp,
typename _Arg>
717 mem_fun_ref(_Ret (_Tp::*__f)(_Arg))
720 template<
typename _Ret,
typename _Tp,
typename _Arg>
722 mem_fun_ref(_Ret (_Tp::*__f)(_Arg)
const)
727 _GLIBCXX_END_NAMESPACE_VERSION
730 #if (__cplusplus < 201103L) || _GLIBCXX_USE_DEPRECATED pointer_to_unary_function< _Arg, _Result > ptr_fun(_Result(*__x)(_Arg))
One of the adaptors for function pointers.
One of the Boolean operations functors.
One of the comparison functors.
unary_negate< _Predicate > not1(const _Predicate &__pred)
One of the negation functors.
ISO C++ entities toplevel namespace is std.
One of the adaptors for member pointers.
One of the math functors.
_Result result_type
result_type is the return type
One of the negation functors.
One of the adaptors for member pointers.
One of the comparison functors.
One of the Boolean operations functors.
One of the adaptors for function pointers.
One of the negation functors.
_Arg argument_type
argument_type is the type of the argument
One of the adaptors for member pointers.
One of the math functors.
One of the adaptors for member pointers.
One of the math functors.
One of the adaptors for function pointers.
One of the comparison functors.
One of the adaptors for member pointers.
One of the comparison functors.
One of the adaptors for member pointers.
One of the math functors.
One of the adaptors for member pointers.
One of the math functors.
_Result result_type
result_type is the return type
One of the Boolean operations functors.
One of the comparison functors.
One of the comparison functors.
_Arg2 second_argument_type
second_argument_type is the type of the second argument
One of the adaptors for member pointers.
One of the math functors.
binary_negate< _Predicate > not2(const _Predicate &__pred)
One of the negation functors.
_Arg1 first_argument_type
first_argument_type is the type of the first argument