56 #ifndef _STL_FUNCTION_H 57 #define _STL_FUNCTION_H 1 59 #if __cplusplus > 201103L 63 namespace std _GLIBCXX_VISIBILITY(default)
65 _GLIBCXX_BEGIN_NAMESPACE_VERSION
104 template<
typename _Arg,
typename _Result>
117 template<
typename _Arg1,
typename _Arg2,
typename _Result>
143 #if __cplusplus > 201103L 144 struct __is_transparent;
146 template<
typename _Tp =
void>
149 template<
typename _Tp =
void>
152 template<
typename _Tp =
void>
155 template<
typename _Tp =
void>
158 template<
typename _Tp =
void>
161 template<
typename _Tp =
void>
166 template<
typename _Tp>
171 operator()(
const _Tp& __x,
const _Tp& __y)
const 172 {
return __x + __y; }
176 template<
typename _Tp>
181 operator()(
const _Tp& __x,
const _Tp& __y)
const 182 {
return __x - __y; }
186 template<
typename _Tp>
191 operator()(
const _Tp& __x,
const _Tp& __y)
const 192 {
return __x * __y; }
196 template<
typename _Tp>
201 operator()(
const _Tp& __x,
const _Tp& __y)
const 202 {
return __x / __y; }
206 template<
typename _Tp>
211 operator()(
const _Tp& __x,
const _Tp& __y)
const 212 {
return __x % __y; }
216 template<
typename _Tp>
221 operator()(
const _Tp& __x)
const 225 #if __cplusplus > 201103L 227 #define __cpp_lib_transparent_operators 201510 232 template <
typename _Tp,
typename _Up>
235 operator()(_Tp&& __t, _Up&& __u)
const 236 noexcept(noexcept(std::forward<_Tp>(__t) + std::forward<_Up>(__u)))
237 -> decltype(std::forward<_Tp>(__t) + std::forward<_Up>(__u))
238 {
return std::forward<_Tp>(__t) + std::forward<_Up>(__u); }
240 typedef __is_transparent is_transparent;
247 template <
typename _Tp,
typename _Up>
250 operator()(_Tp&& __t, _Up&& __u)
const 251 noexcept(noexcept(std::forward<_Tp>(__t) - std::forward<_Up>(__u)))
252 -> decltype(std::forward<_Tp>(__t) - std::forward<_Up>(__u))
253 {
return std::forward<_Tp>(__t) - std::forward<_Up>(__u); }
255 typedef __is_transparent is_transparent;
262 template <
typename _Tp,
typename _Up>
265 operator()(_Tp&& __t, _Up&& __u)
const 266 noexcept(noexcept(std::forward<_Tp>(__t) * std::forward<_Up>(__u)))
267 -> decltype(std::forward<_Tp>(__t) * std::forward<_Up>(__u))
268 {
return std::forward<_Tp>(__t) * std::forward<_Up>(__u); }
270 typedef __is_transparent is_transparent;
277 template <
typename _Tp,
typename _Up>
280 operator()(_Tp&& __t, _Up&& __u)
const 281 noexcept(noexcept(std::forward<_Tp>(__t) / std::forward<_Up>(__u)))
282 -> decltype(std::forward<_Tp>(__t) / std::forward<_Up>(__u))
283 {
return std::forward<_Tp>(__t) / std::forward<_Up>(__u); }
285 typedef __is_transparent is_transparent;
292 template <
typename _Tp,
typename _Up>
295 operator()(_Tp&& __t, _Up&& __u)
const 296 noexcept(noexcept(std::forward<_Tp>(__t) % std::forward<_Up>(__u)))
297 -> decltype(std::forward<_Tp>(__t) % std::forward<_Up>(__u))
298 {
return std::forward<_Tp>(__t) % std::forward<_Up>(__u); }
300 typedef __is_transparent is_transparent;
307 template <
typename _Tp>
310 operator()(_Tp&& __t)
const 311 noexcept(noexcept(-std::forward<_Tp>(__t)))
312 -> decltype(-std::forward<_Tp>(__t))
313 {
return -std::forward<_Tp>(__t); }
315 typedef __is_transparent is_transparent;
329 #if __cplusplus > 201103L 330 template<
typename _Tp =
void>
333 template<
typename _Tp =
void>
336 template<
typename _Tp =
void>
339 template<
typename _Tp =
void>
342 template<
typename _Tp =
void>
345 template<
typename _Tp =
void>
350 template<
typename _Tp>
355 operator()(
const _Tp& __x,
const _Tp& __y)
const 356 {
return __x == __y; }
360 template<
typename _Tp>
365 operator()(
const _Tp& __x,
const _Tp& __y)
const 366 {
return __x != __y; }
370 template<
typename _Tp>
375 operator()(
const _Tp& __x,
const _Tp& __y)
const 376 {
return __x > __y; }
380 template<
typename _Tp>
385 operator()(
const _Tp& __x,
const _Tp& __y)
const 386 {
return __x < __y; }
390 template<
typename _Tp>
395 operator()(
const _Tp& __x,
const _Tp& __y)
const 396 {
return __x >= __y; }
400 template<
typename _Tp>
405 operator()(
const _Tp& __x,
const _Tp& __y)
const 406 {
return __x <= __y; }
410 template<
typename _Tp>
413 _GLIBCXX14_CONSTEXPR
bool 414 operator()(_Tp* __x, _Tp* __y)
const _GLIBCXX_NOTHROW
416 if (__builtin_constant_p (__x > __y))
418 return (__UINTPTR_TYPE__)__x > (__UINTPTR_TYPE__)__y;
423 template<
typename _Tp>
426 _GLIBCXX14_CONSTEXPR
bool 427 operator()(_Tp* __x, _Tp* __y)
const _GLIBCXX_NOTHROW
429 if (__builtin_constant_p (__x < __y))
431 return (__UINTPTR_TYPE__)__x < (__UINTPTR_TYPE__)__y;
436 template<
typename _Tp>
439 _GLIBCXX14_CONSTEXPR
bool 440 operator()(_Tp* __x, _Tp* __y)
const _GLIBCXX_NOTHROW
442 if (__builtin_constant_p (__x >= __y))
444 return (__UINTPTR_TYPE__)__x >= (__UINTPTR_TYPE__)__y;
449 template<
typename _Tp>
452 _GLIBCXX14_CONSTEXPR
bool 453 operator()(_Tp* __x, _Tp* __y)
const _GLIBCXX_NOTHROW
455 if (__builtin_constant_p (__x <= __y))
457 return (__UINTPTR_TYPE__)__x <= (__UINTPTR_TYPE__)__y;
461 #if __cplusplus >= 201402L 466 template <
typename _Tp,
typename _Up>
468 operator()(_Tp&& __t, _Up&& __u)
const 469 noexcept(noexcept(std::forward<_Tp>(__t) == std::forward<_Up>(__u)))
470 -> decltype(std::forward<_Tp>(__t) == std::forward<_Up>(__u))
471 {
return std::forward<_Tp>(__t) == std::forward<_Up>(__u); }
473 typedef __is_transparent is_transparent;
480 template <
typename _Tp,
typename _Up>
482 operator()(_Tp&& __t, _Up&& __u)
const 483 noexcept(noexcept(std::forward<_Tp>(__t) != std::forward<_Up>(__u)))
484 -> decltype(std::forward<_Tp>(__t) != std::forward<_Up>(__u))
485 {
return std::forward<_Tp>(__t) != std::forward<_Up>(__u); }
487 typedef __is_transparent is_transparent;
494 template <
typename _Tp,
typename _Up>
496 operator()(_Tp&& __t, _Up&& __u)
const 497 noexcept(noexcept(std::forward<_Tp>(__t) > std::forward<_Up>(__u)))
498 -> decltype(std::forward<_Tp>(__t) > std::forward<_Up>(__u))
500 return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
501 __ptr_cmp<_Tp, _Up>{});
504 template<
typename _Tp,
typename _Up>
506 operator()(_Tp* __t, _Up* __u)
const noexcept
509 typedef __is_transparent is_transparent;
512 template <
typename _Tp,
typename _Up>
513 static constexpr decltype(
auto)
515 {
return std::forward<_Tp>(__t) > std::forward<_Up>(__u); }
517 template <
typename _Tp,
typename _Up>
518 static constexpr
bool 519 _S_cmp(_Tp&& __t, _Up&& __u,
true_type) noexcept
522 static_cast<const volatile void*
>(std::forward<_Tp>(__t)),
523 static_cast<const volatile void*
>(std::forward<_Up>(__u)));
526 template<
typename _Tp,
typename _Up,
typename =
void>
527 struct __not_overloaded;
530 template<
typename _Tp,
typename _Up>
531 struct __not_overloaded<_Tp, _Up, __void_t<
532 decltype(operator>(std::declval<_Tp>(), std::declval<_Up>()))>>
535 template<
typename _Tp,
typename _Up,
typename =
void>
536 struct __not_overloaded2 :
true_type { };
539 template<
typename _Tp,
typename _Up>
540 struct __not_overloaded2<_Tp, _Up, __void_t<
541 decltype(std::declval<_Tp>().operator>(std::declval<_Up>()))>>
544 template<
typename _Tp,
typename _Up>
545 struct __not_overloaded<_Tp, _Up> : __not_overloaded2<_Tp, _Up> { };
547 template<
typename _Tp,
typename _Up>
548 using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>,
557 template <
typename _Tp,
typename _Up>
559 operator()(_Tp&& __t, _Up&& __u)
const 560 noexcept(noexcept(std::forward<_Tp>(__t) < std::forward<_Up>(__u)))
561 -> decltype(std::forward<_Tp>(__t) < std::forward<_Up>(__u))
563 return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
564 __ptr_cmp<_Tp, _Up>{});
567 template<
typename _Tp,
typename _Up>
569 operator()(_Tp* __t, _Up* __u)
const noexcept
572 typedef __is_transparent is_transparent;
575 template <
typename _Tp,
typename _Up>
576 static constexpr decltype(
auto)
578 {
return std::forward<_Tp>(__t) < std::forward<_Up>(__u); }
580 template <
typename _Tp,
typename _Up>
581 static constexpr
bool 582 _S_cmp(_Tp&& __t, _Up&& __u,
true_type) noexcept
585 static_cast<const volatile void*
>(std::forward<_Tp>(__t)),
586 static_cast<const volatile void*
>(std::forward<_Up>(__u)));
589 template<
typename _Tp,
typename _Up,
typename =
void>
590 struct __not_overloaded;
593 template<
typename _Tp,
typename _Up>
594 struct __not_overloaded<_Tp, _Up, __void_t<
595 decltype(operator<(std::declval<_Tp>(), std::declval<_Up>()))>>
598 template<
typename _Tp,
typename _Up,
typename =
void>
599 struct __not_overloaded2 :
true_type { };
602 template<
typename _Tp,
typename _Up>
603 struct __not_overloaded2<_Tp, _Up, __void_t<
604 decltype(std::declval<_Tp>().operator<(std::declval<_Up>()))>>
607 template<
typename _Tp,
typename _Up>
608 struct __not_overloaded<_Tp, _Up> : __not_overloaded2<_Tp, _Up> { };
610 template<
typename _Tp,
typename _Up>
611 using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>,
620 template <
typename _Tp,
typename _Up>
622 operator()(_Tp&& __t, _Up&& __u)
const 623 noexcept(noexcept(std::forward<_Tp>(__t) >= std::forward<_Up>(__u)))
624 -> decltype(std::forward<_Tp>(__t) >= std::forward<_Up>(__u))
626 return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
627 __ptr_cmp<_Tp, _Up>{});
630 template<
typename _Tp,
typename _Up>
632 operator()(_Tp* __t, _Up* __u)
const noexcept
635 typedef __is_transparent is_transparent;
638 template <
typename _Tp,
typename _Up>
639 static constexpr decltype(
auto)
641 {
return std::forward<_Tp>(__t) >= std::forward<_Up>(__u); }
643 template <
typename _Tp,
typename _Up>
644 static constexpr
bool 645 _S_cmp(_Tp&& __t, _Up&& __u,
true_type) noexcept
648 static_cast<const volatile void*
>(std::forward<_Tp>(__t)),
649 static_cast<const volatile void*
>(std::forward<_Up>(__u)));
652 template<
typename _Tp,
typename _Up,
typename =
void>
653 struct __not_overloaded;
656 template<
typename _Tp,
typename _Up>
657 struct __not_overloaded<_Tp, _Up, __void_t<
658 decltype(operator>=(std::declval<_Tp>(), std::declval<_Up>()))>>
661 template<
typename _Tp,
typename _Up,
typename =
void>
662 struct __not_overloaded2 :
true_type { };
665 template<
typename _Tp,
typename _Up>
666 struct __not_overloaded2<_Tp, _Up, __void_t<
667 decltype(std::declval<_Tp>().operator>=(std::declval<_Up>()))>>
670 template<
typename _Tp,
typename _Up>
671 struct __not_overloaded<_Tp, _Up> : __not_overloaded2<_Tp, _Up> { };
673 template<
typename _Tp,
typename _Up>
674 using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>,
683 template <
typename _Tp,
typename _Up>
685 operator()(_Tp&& __t, _Up&& __u)
const 686 noexcept(noexcept(std::forward<_Tp>(__t) <= std::forward<_Up>(__u)))
687 -> decltype(std::forward<_Tp>(__t) <= std::forward<_Up>(__u))
689 return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
690 __ptr_cmp<_Tp, _Up>{});
693 template<
typename _Tp,
typename _Up>
695 operator()(_Tp* __t, _Up* __u)
const noexcept
698 typedef __is_transparent is_transparent;
701 template <
typename _Tp,
typename _Up>
702 static constexpr decltype(
auto)
704 {
return std::forward<_Tp>(__t) <= std::forward<_Up>(__u); }
706 template <
typename _Tp,
typename _Up>
707 static constexpr
bool 708 _S_cmp(_Tp&& __t, _Up&& __u,
true_type) noexcept
711 static_cast<const volatile void*
>(std::forward<_Tp>(__t)),
712 static_cast<const volatile void*
>(std::forward<_Up>(__u)));
715 template<
typename _Tp,
typename _Up,
typename =
void>
716 struct __not_overloaded;
719 template<
typename _Tp,
typename _Up>
720 struct __not_overloaded<_Tp, _Up, __void_t<
721 decltype(operator<=(std::declval<_Tp>(), std::declval<_Up>()))>>
724 template<
typename _Tp,
typename _Up,
typename =
void>
725 struct __not_overloaded2 :
true_type { };
728 template<
typename _Tp,
typename _Up>
729 struct __not_overloaded2<_Tp, _Up, __void_t<
730 decltype(std::declval<_Tp>().operator<=(std::declval<_Up>()))>>
733 template<
typename _Tp,
typename _Up>
734 struct __not_overloaded<_Tp, _Up> : __not_overloaded2<_Tp, _Up> { };
736 template<
typename _Tp,
typename _Up>
737 using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>,
753 #if __cplusplus > 201103L 754 template<
typename _Tp =
void>
757 template<
typename _Tp =
void>
760 template<
typename _Tp =
void>
765 template<
typename _Tp>
770 operator()(
const _Tp& __x,
const _Tp& __y)
const 771 {
return __x && __y; }
775 template<
typename _Tp>
780 operator()(
const _Tp& __x,
const _Tp& __y)
const 781 {
return __x || __y; }
785 template<
typename _Tp>
790 operator()(
const _Tp& __x)
const 794 #if __cplusplus > 201103L 799 template <
typename _Tp,
typename _Up>
802 operator()(_Tp&& __t, _Up&& __u)
const 803 noexcept(noexcept(std::forward<_Tp>(__t) && std::forward<_Up>(__u)))
804 -> decltype(std::forward<_Tp>(__t) && std::forward<_Up>(__u))
805 {
return std::forward<_Tp>(__t) && std::forward<_Up>(__u); }
807 typedef __is_transparent is_transparent;
814 template <
typename _Tp,
typename _Up>
817 operator()(_Tp&& __t, _Up&& __u)
const 818 noexcept(noexcept(std::forward<_Tp>(__t) || std::forward<_Up>(__u)))
819 -> decltype(std::forward<_Tp>(__t) || std::forward<_Up>(__u))
820 {
return std::forward<_Tp>(__t) || std::forward<_Up>(__u); }
822 typedef __is_transparent is_transparent;
829 template <
typename _Tp>
832 operator()(_Tp&& __t)
const 833 noexcept(noexcept(!std::forward<_Tp>(__t)))
834 -> decltype(!std::forward<_Tp>(__t))
835 {
return !std::forward<_Tp>(__t); }
837 typedef __is_transparent is_transparent;
842 #if __cplusplus > 201103L 843 template<
typename _Tp =
void>
846 template<
typename _Tp =
void>
849 template<
typename _Tp =
void>
852 template<
typename _Tp =
void>
858 template<
typename _Tp>
863 operator()(
const _Tp& __x,
const _Tp& __y)
const 864 {
return __x & __y; }
867 template<
typename _Tp>
872 operator()(
const _Tp& __x,
const _Tp& __y)
const 873 {
return __x | __y; }
876 template<
typename _Tp>
881 operator()(
const _Tp& __x,
const _Tp& __y)
const 882 {
return __x ^ __y; }
885 template<
typename _Tp>
890 operator()(
const _Tp& __x)
const 894 #if __cplusplus > 201103L 898 template <
typename _Tp,
typename _Up>
901 operator()(_Tp&& __t, _Up&& __u)
const 902 noexcept(noexcept(std::forward<_Tp>(__t) & std::forward<_Up>(__u)))
903 -> decltype(std::forward<_Tp>(__t) & std::forward<_Up>(__u))
904 {
return std::forward<_Tp>(__t) & std::forward<_Up>(__u); }
906 typedef __is_transparent is_transparent;
912 template <
typename _Tp,
typename _Up>
915 operator()(_Tp&& __t, _Up&& __u)
const 916 noexcept(noexcept(std::forward<_Tp>(__t) | std::forward<_Up>(__u)))
917 -> decltype(std::forward<_Tp>(__t) | std::forward<_Up>(__u))
918 {
return std::forward<_Tp>(__t) | std::forward<_Up>(__u); }
920 typedef __is_transparent is_transparent;
926 template <
typename _Tp,
typename _Up>
929 operator()(_Tp&& __t, _Up&& __u)
const 930 noexcept(noexcept(std::forward<_Tp>(__t) ^ std::forward<_Up>(__u)))
931 -> decltype(std::forward<_Tp>(__t) ^ std::forward<_Up>(__u))
932 {
return std::forward<_Tp>(__t) ^ std::forward<_Up>(__u); }
934 typedef __is_transparent is_transparent;
940 template <
typename _Tp>
943 operator()(_Tp&& __t)
const 944 noexcept(noexcept(~std::forward<_Tp>(__t)))
945 -> decltype(~std::forward<_Tp>(__t))
946 {
return ~
std::forward<_Tp>(__t); }
948 typedef __is_transparent is_transparent;
982 template<
typename _Predicate>
996 operator()(
const typename _Predicate::argument_type& __x)
const 997 {
return !_M_pred(__x); }
1001 template<
typename _Predicate>
1002 _GLIBCXX14_CONSTEXPR
1008 template<
typename _Predicate>
1011 typename _Predicate::second_argument_type, bool>
1017 _GLIBCXX14_CONSTEXPR
1021 _GLIBCXX14_CONSTEXPR
1023 operator()(
const typename _Predicate::first_argument_type& __x,
1024 const typename _Predicate::second_argument_type& __y)
const 1025 {
return !_M_pred(__x, __y); }
1029 template<
typename _Predicate>
1030 _GLIBCXX14_CONSTEXPR
1059 template<
typename _Arg,
typename _Result>
1063 _Result (*_M_ptr)(_Arg);
1073 operator()(_Arg __x)
const 1074 {
return _M_ptr(__x); }
1078 template<
typename _Arg,
typename _Result>
1084 template<
typename _Arg1,
typename _Arg2,
typename _Result>
1089 _Result (*_M_ptr)(_Arg1, _Arg2);
1099 operator()(_Arg1 __x, _Arg2 __y)
const 1100 {
return _M_ptr(__x, __y); }
1104 template<
typename _Arg1,
typename _Arg2,
typename _Result>
1110 template<
typename _Tp>
1115 operator()(_Tp& __x)
const 1119 operator()(
const _Tp& __x)
const 1124 template<
typename _Tp>
struct _Identity<const _Tp> : _Identity<_Tp> { };
1126 template<
typename _Pair>
1130 typename _Pair::first_type&
1131 operator()(_Pair& __x)
const 1132 {
return __x.first; }
1134 const typename _Pair::first_type&
1135 operator()(
const _Pair& __x)
const 1136 {
return __x.first; }
1138 #if __cplusplus >= 201103L 1139 template<
typename _Pair2>
1140 typename _Pair2::first_type&
1141 operator()(_Pair2& __x)
const 1142 {
return __x.first; }
1144 template<
typename _Pair2>
1145 const typename _Pair2::first_type&
1146 operator()(
const _Pair2& __x)
const 1147 {
return __x.first; }
1151 template<
typename _Pair>
1155 typename _Pair::second_type&
1156 operator()(_Pair& __x)
const 1157 {
return __x.second; }
1159 const typename _Pair::second_type&
1160 operator()(
const _Pair& __x)
const 1161 {
return __x.second; }
1182 template<
typename _Ret,
typename _Tp>
1191 operator()(_Tp* __p)
const 1192 {
return (__p->*_M_f)(); }
1195 _Ret (_Tp::*_M_f)();
1200 template<
typename _Ret,
typename _Tp>
1209 operator()(
const _Tp* __p)
const 1210 {
return (__p->*_M_f)(); }
1213 _Ret (_Tp::*_M_f)()
const;
1218 template<
typename _Ret,
typename _Tp>
1227 operator()(_Tp& __r)
const 1228 {
return (__r.*_M_f)(); }
1231 _Ret (_Tp::*_M_f)();
1236 template<
typename _Ret,
typename _Tp>
1245 operator()(
const _Tp& __r)
const 1246 {
return (__r.*_M_f)(); }
1249 _Ret (_Tp::*_M_f)()
const;
1254 template<
typename _Ret,
typename _Tp,
typename _Arg>
1263 operator()(_Tp* __p, _Arg __x)
const 1264 {
return (__p->*_M_f)(__x); }
1267 _Ret (_Tp::*_M_f)(_Arg);
1272 template<
typename _Ret,
typename _Tp,
typename _Arg>
1281 operator()(
const _Tp* __p, _Arg __x)
const 1282 {
return (__p->*_M_f)(__x); }
1285 _Ret (_Tp::*_M_f)(_Arg)
const;
1290 template<
typename _Ret,
typename _Tp,
typename _Arg>
1299 operator()(_Tp& __r, _Arg __x)
const 1300 {
return (__r.*_M_f)(__x); }
1303 _Ret (_Tp::*_M_f)(_Arg);
1308 template<
typename _Ret,
typename _Tp,
typename _Arg>
1317 operator()(
const _Tp& __r, _Arg __x)
const 1318 {
return (__r.*_M_f)(__x); }
1321 _Ret (_Tp::*_M_f)(_Arg)
const;
1326 template<
typename _Ret,
typename _Tp>
1328 mem_fun(_Ret (_Tp::*__f)())
1331 template<
typename _Ret,
typename _Tp>
1333 mem_fun(_Ret (_Tp::*__f)()
const)
1336 template<
typename _Ret,
typename _Tp>
1338 mem_fun_ref(_Ret (_Tp::*__f)())
1341 template<
typename _Ret,
typename _Tp>
1343 mem_fun_ref(_Ret (_Tp::*__f)()
const)
1346 template<
typename _Ret,
typename _Tp,
typename _Arg>
1348 mem_fun(_Ret (_Tp::*__f)(_Arg))
1351 template<
typename _Ret,
typename _Tp,
typename _Arg>
1353 mem_fun(_Ret (_Tp::*__f)(_Arg)
const)
1356 template<
typename _Ret,
typename _Tp,
typename _Arg>
1358 mem_fun_ref(_Ret (_Tp::*__f)(_Arg))
1361 template<
typename _Ret,
typename _Tp,
typename _Arg>
1363 mem_fun_ref(_Ret (_Tp::*__f)(_Arg)
const)
1368 _GLIBCXX_END_NAMESPACE_VERSION
1371 #if (__cplusplus < 201103L) || _GLIBCXX_USE_DEPRECATED
One of the adaptors for member pointers.
pointer_to_unary_function< _Arg, _Result > ptr_fun(_Result(*__x)(_Arg))
One of the adaptors for function pointers.
_GLIBCXX14_CONSTEXPR unary_negate< _Predicate > not1(const _Predicate &__pred)
One of the negation functors.
One of the math functors.
One of the adaptors for member pointers.
One of the Boolean operations functors.
One of the adaptors for member pointers.
One of the math functors.
One of the math functors.
One of the adaptors for member pointers.
_GLIBCXX14_CONSTEXPR binary_negate< _Predicate > not2(const _Predicate &__pred)
One of the negation functors.
_Arg2 second_argument_type
second_argument_type is the type of the second argument
One of the comparison functors.
One of the adaptors for function pointers.
One of the adaptors for member pointers.
One of the Boolean operations functors.
ISO C++ entities toplevel namespace is std.
One of the comparison functors.
One of the negation functors.
One of the math functors.
One of the adaptors for member pointers.
One of the comparison functors.
One of the math functors.
One of the adaptors for member pointers.
One of the adaptors for member pointers.
One of the Boolean operations functors.
_Result result_type
result_type is the return type
One of the math functors.
_Result result_type
result_type is the return type
One of the comparison functors.
One of the adaptors for function pointers.
_Arg1 first_argument_type
first_argument_type is the type of the first argument
_Arg argument_type
argument_type is the type of the argument
One of the comparison functors.
One of the comparison functors.
One of the negation functors.