56#ifndef _STL_FUNCTION_H
57#define _STL_FUNCTION_H 1
59#if __cplusplus > 201103L
63namespace std _GLIBCXX_VISIBILITY(default)
65_GLIBCXX_BEGIN_NAMESPACE_VERSION
116 template<
typename _Arg,
typename _Result>
124 } _GLIBCXX11_DEPRECATED;
130 template<
typename _Arg1,
typename _Arg2,
typename _Result>
141 } _GLIBCXX11_DEPRECATED;
156#if __glibcxx_transparent_operators
157 struct __is_transparent;
159 template<
typename _Tp =
void>
162 template<
typename _Tp =
void>
165 template<
typename _Tp =
void>
168 template<
typename _Tp =
void>
171 template<
typename _Tp =
void>
174 template<
typename _Tp =
void>
179#pragma GCC diagnostic push
180#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
183 template<
typename _Tp>
190 {
return __x + __y; }
194 template<
typename _Tp>
199 operator()(
const _Tp& __x,
const _Tp& __y)
const
200 {
return __x - __y; }
204 template<
typename _Tp>
209 operator()(
const _Tp& __x,
const _Tp& __y)
const
210 {
return __x * __y; }
214 template<
typename _Tp>
219 operator()(
const _Tp& __x,
const _Tp& __y)
const
220 {
return __x / __y; }
224 template<
typename _Tp>
229 operator()(
const _Tp& __x,
const _Tp& __y)
const
230 {
return __x % __y; }
234 template<
typename _Tp>
239 operator()(
const _Tp& __x)
const
242#pragma GCC diagnostic pop
244#ifdef __glibcxx_transparent_operators
248 template <
typename _Tp,
typename _Up>
256 typedef __is_transparent is_transparent;
263 template <
typename _Tp,
typename _Up>
266 operator()(_Tp&& __t, _Up&& __u)
const
271 typedef __is_transparent is_transparent;
278 template <
typename _Tp,
typename _Up>
281 operator()(_Tp&& __t, _Up&& __u)
const
286 typedef __is_transparent is_transparent;
293 template <
typename _Tp,
typename _Up>
296 operator()(_Tp&& __t, _Up&& __u)
const
301 typedef __is_transparent is_transparent;
308 template <
typename _Tp,
typename _Up>
311 operator()(_Tp&& __t, _Up&& __u)
const
316 typedef __is_transparent is_transparent;
323 template <
typename _Tp>
326 operator()(_Tp&& __t)
const
331 typedef __is_transparent is_transparent;
345#if __glibcxx_transparent_operators
346 template<
typename _Tp =
void>
349 template<
typename _Tp =
void>
352 template<
typename _Tp =
void>
355 template<
typename _Tp =
void>
358 template<
typename _Tp =
void>
361 template<
typename _Tp =
void>
365#pragma GCC diagnostic push
366#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
369 template<
typename _Tp>
370 struct equal_to :
public binary_function<_Tp, _Tp, bool>
374 operator()(
const _Tp& __x,
const _Tp& __y)
const
375 {
return __x == __y; }
379 template<
typename _Tp>
384 operator()(
const _Tp& __x,
const _Tp& __y)
const
385 {
return __x != __y; }
389 template<
typename _Tp>
394 operator()(
const _Tp& __x,
const _Tp& __y)
const
395 {
return __x > __y; }
399 template<
typename _Tp>
404 operator()(
const _Tp& __x,
const _Tp& __y)
const
405 {
return __x < __y; }
409 template<
typename _Tp>
414 operator()(
const _Tp& __x,
const _Tp& __y)
const
415 {
return __x >= __y; }
419 template<
typename _Tp>
424 operator()(
const _Tp& __x,
const _Tp& __y)
const
425 {
return __x <= __y; }
429 template<
typename _Tp>
432 _GLIBCXX14_CONSTEXPR
bool
433 operator()(_Tp* __x, _Tp* __y)
const _GLIBCXX_NOTHROW
435#if __cplusplus >= 201402L
436 if (std::__is_constant_evaluated())
439 return (__UINTPTR_TYPE__)__x > (__UINTPTR_TYPE__)__y;
444 template<
typename _Tp>
447 _GLIBCXX14_CONSTEXPR
bool
448 operator()(_Tp* __x, _Tp* __y)
const _GLIBCXX_NOTHROW
450#if __cplusplus >= 201402L
451 if (std::__is_constant_evaluated())
454 return (__UINTPTR_TYPE__)__x < (__UINTPTR_TYPE__)__y;
459 template<
typename _Tp>
462 _GLIBCXX14_CONSTEXPR
bool
463 operator()(_Tp* __x, _Tp* __y)
const _GLIBCXX_NOTHROW
465#if __cplusplus >= 201402L
466 if (std::__is_constant_evaluated())
469 return (__UINTPTR_TYPE__)__x >= (__UINTPTR_TYPE__)__y;
474 template<
typename _Tp>
477 _GLIBCXX14_CONSTEXPR
bool
478 operator()(_Tp* __x, _Tp* __y)
const _GLIBCXX_NOTHROW
480#if __cplusplus >= 201402L
481 if (std::__is_constant_evaluated())
484 return (__UINTPTR_TYPE__)__x <= (__UINTPTR_TYPE__)__y;
487#pragma GCC diagnostic pop
489#ifdef __glibcxx_transparent_operators
494 template <
typename _Tp,
typename _Up>
496 operator()(_Tp&& __t, _Up&& __u)
const
501 typedef __is_transparent is_transparent;
508 template <
typename _Tp,
typename _Up>
510 operator()(_Tp&& __t, _Up&& __u)
const
515 typedef __is_transparent is_transparent;
522 template <
typename _Tp,
typename _Up>
524 operator()(_Tp&& __t, _Up&& __u)
const
529 __ptr_cmp<_Tp, _Up>{});
532 template<
typename _Tp,
typename _Up>
534 operator()(_Tp* __t, _Up* __u)
const noexcept
537 typedef __is_transparent is_transparent;
540 template <
typename _Tp,
typename _Up>
541 static constexpr decltype(
auto)
545 template <
typename _Tp,
typename _Up>
546 static constexpr bool
547 _S_cmp(_Tp&& __t, _Up&& __u,
true_type)
noexcept
555 template<
typename _Tp,
typename _Up,
typename =
void>
556 struct __not_overloaded2 :
true_type { };
559 template<
typename _Tp,
typename _Up>
560 struct __not_overloaded2<_Tp, _Up, __void_t<
561 decltype(
std::
declval<_Tp>().operator>(std::declval<_Up>()))>>
565 template<
typename _Tp,
typename _Up,
typename =
void>
566 struct __not_overloaded : __not_overloaded2<_Tp, _Up> { };
569 template<
typename _Tp,
typename _Up>
570 struct __not_overloaded<_Tp, _Up, __void_t<
574 template<
typename _Tp,
typename _Up>
575 using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>,
576 is_convertible<_Tp, const volatile void*>,
577 is_convertible<_Up, const volatile void*>>;
584 template <
typename _Tp,
typename _Up>
586 operator()(_Tp&& __t, _Up&& __u)
const
591 __ptr_cmp<_Tp, _Up>{});
594 template<
typename _Tp,
typename _Up>
596 operator()(_Tp* __t, _Up* __u)
const noexcept
597 {
return less<common_type_t<_Tp*, _Up*>>{}(__t, __u); }
599 typedef __is_transparent is_transparent;
602 template <
typename _Tp,
typename _Up>
603 static constexpr decltype(
auto)
607 template <
typename _Tp,
typename _Up>
608 static constexpr bool
609 _S_cmp(_Tp&& __t, _Up&& __u,
true_type)
noexcept
611 return less<const volatile void*>{}(
617 template<
typename _Tp,
typename _Up,
typename =
void>
618 struct __not_overloaded2 :
true_type { };
621 template<
typename _Tp,
typename _Up>
622 struct __not_overloaded2<_Tp, _Up, __void_t<
623 decltype(std::
declval<_Tp>().operator<(std::declval<_Up>()))>>
627 template<
typename _Tp,
typename _Up,
typename =
void>
628 struct __not_overloaded : __not_overloaded2<_Tp, _Up> { };
631 template<
typename _Tp,
typename _Up>
632 struct __not_overloaded<_Tp, _Up, __void_t<
636 template<
typename _Tp,
typename _Up>
637 using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>,
638 is_convertible<_Tp, const volatile void*>,
639 is_convertible<_Up, const volatile void*>>;
646 template <
typename _Tp,
typename _Up>
648 operator()(_Tp&& __t, _Up&& __u)
const
653 __ptr_cmp<_Tp, _Up>{});
656 template<
typename _Tp,
typename _Up>
658 operator()(_Tp* __t, _Up* __u)
const noexcept
661 typedef __is_transparent is_transparent;
664 template <
typename _Tp,
typename _Up>
665 static constexpr decltype(
auto)
669 template <
typename _Tp,
typename _Up>
670 static constexpr bool
671 _S_cmp(_Tp&& __t, _Up&& __u,
true_type)
noexcept
679 template<
typename _Tp,
typename _Up,
typename =
void>
680 struct __not_overloaded2 :
true_type { };
683 template<
typename _Tp,
typename _Up>
684 struct __not_overloaded2<_Tp, _Up, __void_t<
685 decltype(
std::
declval<_Tp>().operator>=(std::declval<_Up>()))>>
689 template<
typename _Tp,
typename _Up,
typename =
void>
690 struct __not_overloaded : __not_overloaded2<_Tp, _Up> { };
693 template<
typename _Tp,
typename _Up>
694 struct __not_overloaded<_Tp, _Up, __void_t<
698 template<
typename _Tp,
typename _Up>
699 using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>,
700 is_convertible<_Tp, const volatile void*>,
701 is_convertible<_Up, const volatile void*>>;
708 template <
typename _Tp,
typename _Up>
710 operator()(_Tp&& __t, _Up&& __u)
const
715 __ptr_cmp<_Tp, _Up>{});
718 template<
typename _Tp,
typename _Up>
720 operator()(_Tp* __t, _Up* __u)
const noexcept
723 typedef __is_transparent is_transparent;
726 template <
typename _Tp,
typename _Up>
727 static constexpr decltype(
auto)
731 template <
typename _Tp,
typename _Up>
732 static constexpr bool
733 _S_cmp(_Tp&& __t, _Up&& __u,
true_type)
noexcept
741 template<
typename _Tp,
typename _Up,
typename =
void>
742 struct __not_overloaded2 :
true_type { };
745 template<
typename _Tp,
typename _Up>
746 struct __not_overloaded2<_Tp, _Up, __void_t<
747 decltype(
std::
declval<_Tp>().operator<=(std::declval<_Up>()))>>
751 template<
typename _Tp,
typename _Up,
typename =
void>
752 struct __not_overloaded : __not_overloaded2<_Tp, _Up> { };
755 template<
typename _Tp,
typename _Up>
756 struct __not_overloaded<_Tp, _Up, __void_t<
760 template<
typename _Tp,
typename _Up>
761 using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>,
762 is_convertible<_Tp, const volatile void*>,
763 is_convertible<_Up, const volatile void*>>;
772#ifdef __cpp_rvalue_references
773 template<
typename _Tp,
typename _Up>
775 operator()(_Tp&& __t, _Up&& __u)
const
776 {
return __t == __u; }
778 template<
typename _Tp,
typename _Up>
780 operator()(_Tp& __t, _Up& __u)
const {
return __t == __u; }
781 template<
typename _Tp,
typename _Up>
783 operator()(
const _Tp& __t, _Up& __u)
const {
return __t == __u; }
784 template<
typename _Tp,
typename _Up>
786 operator()(_Tp& __t,
const _Up& __u)
const {
return __t == __u; }
787 template<
typename _Tp,
typename _Up>
789 operator()(
const _Tp& __t,
const _Up& __u)
const {
return __t == __u; }
796#ifdef __cpp_rvalue_references
797 template<
typename _Tp,
typename _Up>
799 operator()(_Tp&& __t, _Up&& __u)
const
800 {
return __t < __u; }
802 template<
typename _Tp,
typename _Up>
804 operator()(_Tp& __t, _Up& __u)
const {
return __t < __u; }
805 template<
typename _Tp,
typename _Up>
807 operator()(
const _Tp& __t, _Up& __u)
const {
return __t < __u; }
808 template<
typename _Tp,
typename _Up>
810 operator()(_Tp& __t,
const _Up& __u)
const {
return __t < __u; }
811 template<
typename _Tp,
typename _Up>
813 operator()(
const _Tp& __t,
const _Up& __u)
const {
return __t < __u; }
829#ifdef __glibcxx_transparent_operators
830 template<
typename _Tp =
void>
833 template<
typename _Tp =
void>
836 template<
typename _Tp =
void>
840#pragma GCC diagnostic push
841#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
844 template<
typename _Tp>
849 operator()(
const _Tp& __x,
const _Tp& __y)
const
850 {
return __x && __y; }
854 template<
typename _Tp>
859 operator()(
const _Tp& __x,
const _Tp& __y)
const
860 {
return __x || __y; }
864 template<
typename _Tp>
869 operator()(
const _Tp& __x)
const
872#pragma GCC diagnostic pop
874#ifdef __glibcxx_transparent_operators
879 template <
typename _Tp,
typename _Up>
882 operator()(_Tp&& __t, _Up&& __u)
const
887 typedef __is_transparent is_transparent;
894 template <
typename _Tp,
typename _Up>
897 operator()(_Tp&& __t, _Up&& __u)
const
902 typedef __is_transparent is_transparent;
909 template <
typename _Tp>
912 operator()(_Tp&& __t)
const
917 typedef __is_transparent is_transparent;
922#ifdef __glibcxx_transparent_operators
923 template<
typename _Tp =
void>
926 template<
typename _Tp =
void>
929 template<
typename _Tp =
void>
932 template<
typename _Tp =
void>
936#pragma GCC diagnostic push
937#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
941 template<
typename _Tp>
946 operator()(
const _Tp& __x,
const _Tp& __y)
const
947 {
return __x & __y; }
950 template<
typename _Tp>
955 operator()(
const _Tp& __x,
const _Tp& __y)
const
956 {
return __x | __y; }
959 template<
typename _Tp>
964 operator()(
const _Tp& __x,
const _Tp& __y)
const
965 {
return __x ^ __y; }
968 template<
typename _Tp>
973 operator()(
const _Tp& __x)
const
976#pragma GCC diagnostic pop
978#ifdef __glibcxx_transparent_operators
982 template <
typename _Tp,
typename _Up>
985 operator()(_Tp&& __t, _Up&& __u)
const
990 typedef __is_transparent is_transparent;
996 template <
typename _Tp,
typename _Up>
999 operator()(_Tp&& __t, _Up&& __u)
const
1004 typedef __is_transparent is_transparent;
1008 struct bit_xor<void>
1010 template <
typename _Tp,
typename _Up>
1011 _GLIBCXX14_CONSTEXPR
1013 operator()(_Tp&& __t, _Up&& __u)
const
1018 typedef __is_transparent is_transparent;
1022 struct bit_not<void>
1024 template <
typename _Tp>
1025 _GLIBCXX14_CONSTEXPR
1027 operator()(_Tp&& __t)
const
1032 typedef __is_transparent is_transparent;
1036#pragma GCC diagnostic push
1037#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
1072 template<
typename _Predicate>
1073 class _GLIBCXX17_DEPRECATED unary_negate
1074 :
public unary_function<typename _Predicate::argument_type, bool>
1080 _GLIBCXX14_CONSTEXPR
1082 unary_negate(
const _Predicate& __x) : _M_pred(__x) { }
1084 _GLIBCXX14_CONSTEXPR
1086 operator()(
const typename _Predicate::argument_type& __x)
const
1087 {
return !_M_pred(__x); }
1091 template<
typename _Predicate>
1092 _GLIBCXX17_DEPRECATED_SUGGEST(
"std::not_fn")
1093 _GLIBCXX14_CONSTEXPR
1099 template<
typename _Predicate>
1100 class _GLIBCXX17_DEPRECATED binary_negate
1102 typename _Predicate::second_argument_type, bool>
1108 _GLIBCXX14_CONSTEXPR
1110 binary_negate(
const _Predicate& __x) : _M_pred(__x) { }
1112 _GLIBCXX14_CONSTEXPR
1114 operator()(
const typename _Predicate::first_argument_type& __x,
1115 const typename _Predicate::second_argument_type& __y)
const
1116 {
return !_M_pred(__x, __y); }
1120 template<
typename _Predicate>
1121 _GLIBCXX17_DEPRECATED_SUGGEST(
"std::not_fn")
1122 _GLIBCXX14_CONSTEXPR
1153 template<
typename _Arg,
typename _Result>
1157 _Result (*_M_ptr)(_Arg);
1160 pointer_to_unary_function() { }
1163 pointer_to_unary_function(_Result (*__x)(_Arg))
1167 operator()(_Arg __x)
const
1168 {
return _M_ptr(__x); }
1169 } _GLIBCXX11_DEPRECATED;
1172 template<
typename _Arg,
typename _Result>
1173 _GLIBCXX11_DEPRECATED_SUGGEST(
"std::function")
1179 template<
typename _Arg1,
typename _Arg2,
typename _Result>
1180 class pointer_to_binary_function
1184 _Result (*_M_ptr)(_Arg1, _Arg2);
1187 pointer_to_binary_function() { }
1190 pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2))
1194 operator()(_Arg1 __x, _Arg2 __y)
const
1195 {
return _M_ptr(__x, __y); }
1196 } _GLIBCXX11_DEPRECATED;
1199 template<
typename _Arg1,
typename _Arg2,
typename _Result>
1200 _GLIBCXX11_DEPRECATED_SUGGEST(
"std::function")
1206 template<
typename _Tp>
1208 :
public unary_function<_Tp, _Tp>
1211 operator()(_Tp& __x)
const
1215 operator()(
const _Tp& __x)
const
1220 template<
typename _Tp>
struct _Identity<const _Tp> : _Identity<_Tp> { };
1222 template<
typename _Pair>
1226 typename _Pair::first_type&
1227 operator()(_Pair& __x)
const
1228 {
return __x.first; }
1230 const typename _Pair::first_type&
1231 operator()(
const _Pair& __x)
const
1232 {
return __x.first; }
1234#if __cplusplus >= 201103L
1235 template<
typename _Pair2>
1236 typename _Pair2::first_type&
1237 operator()(_Pair2& __x)
const
1238 {
return __x.first; }
1240 template<
typename _Pair2>
1241 const typename _Pair2::first_type&
1242 operator()(
const _Pair2& __x)
const
1243 {
return __x.first; }
1247 template<
typename _Pair>
1251 typename _Pair::second_type&
1252 operator()(_Pair& __x)
const
1253 {
return __x.second; }
1255 const typename _Pair::second_type&
1256 operator()(
const _Pair& __x)
const
1257 {
return __x.second; }
1280 template<
typename _Ret,
typename _Tp>
1285 mem_fun_t(_Ret (_Tp::*__pf)())
1289 operator()(_Tp* __p)
const
1290 {
return (__p->*_M_f)(); }
1293 _Ret (_Tp::*_M_f)();
1294 } _GLIBCXX11_DEPRECATED;
1297 template<
typename _Ret,
typename _Tp>
1302 const_mem_fun_t(_Ret (_Tp::*__pf)()
const)
1306 operator()(
const _Tp* __p)
const
1307 {
return (__p->*_M_f)(); }
1310 _Ret (_Tp::*_M_f)()
const;
1311 } _GLIBCXX11_DEPRECATED;
1314 template<
typename _Ret,
typename _Tp>
1319 mem_fun_ref_t(_Ret (_Tp::*__pf)())
1323 operator()(_Tp& __r)
const
1324 {
return (__r.*_M_f)(); }
1327 _Ret (_Tp::*_M_f)();
1328 } _GLIBCXX11_DEPRECATED;
1331 template<
typename _Ret,
typename _Tp>
1336 const_mem_fun_ref_t(_Ret (_Tp::*__pf)()
const)
1340 operator()(
const _Tp& __r)
const
1341 {
return (__r.*_M_f)(); }
1344 _Ret (_Tp::*_M_f)()
const;
1345 } _GLIBCXX11_DEPRECATED;
1348 template<
typename _Ret,
typename _Tp,
typename _Arg>
1353 mem_fun1_t(_Ret (_Tp::*__pf)(_Arg))
1357 operator()(_Tp* __p, _Arg __x)
const
1358 {
return (__p->*_M_f)(__x); }
1361 _Ret (_Tp::*_M_f)(_Arg);
1362 } _GLIBCXX11_DEPRECATED;
1365 template<
typename _Ret,
typename _Tp,
typename _Arg>
1370 const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)
const)
1374 operator()(
const _Tp* __p, _Arg __x)
const
1375 {
return (__p->*_M_f)(__x); }
1378 _Ret (_Tp::*_M_f)(_Arg)
const;
1379 } _GLIBCXX11_DEPRECATED;
1382 template<
typename _Ret,
typename _Tp,
typename _Arg>
1387 mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg))
1391 operator()(_Tp& __r, _Arg __x)
const
1392 {
return (__r.*_M_f)(__x); }
1395 _Ret (_Tp::*_M_f)(_Arg);
1396 } _GLIBCXX11_DEPRECATED;
1399 template<
typename _Ret,
typename _Tp,
typename _Arg>
1404 const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)
const)
1408 operator()(
const _Tp& __r, _Arg __x)
const
1409 {
return (__r.*_M_f)(__x); }
1412 _Ret (_Tp::*_M_f)(_Arg)
const;
1413 } _GLIBCXX11_DEPRECATED;
1417 template<
typename _Ret,
typename _Tp>
1418 _GLIBCXX11_DEPRECATED_SUGGEST(
"std::mem_fn")
1420 mem_fun(_Ret (_Tp::*__f)())
1423 template<
typename _Ret,
typename _Tp>
1424 _GLIBCXX11_DEPRECATED_SUGGEST(
"std::mem_fn")
1425 inline const_mem_fun_t<_Ret, _Tp>
1426 mem_fun(_Ret (_Tp::*__f)() const)
1427 {
return const_mem_fun_t<_Ret, _Tp>(__f); }
1429 template<
typename _Ret,
typename _Tp>
1430 _GLIBCXX11_DEPRECATED_SUGGEST(
"std::mem_fn")
1432 mem_fun_ref(_Ret (_Tp::*__f)())
1435 template<
typename _Ret,
typename _Tp>
1436 _GLIBCXX11_DEPRECATED_SUGGEST(
"std::mem_fn")
1438 mem_fun_ref(_Ret (_Tp::*__f)() const)
1441 template<
typename _Ret,
typename _Tp,
typename _Arg>
1442 _GLIBCXX11_DEPRECATED_SUGGEST(
"std::mem_fn")
1444 mem_fun(_Ret (_Tp::*__f)(_Arg))
1447 template<
typename _Ret,
typename _Tp,
typename _Arg>
1448 _GLIBCXX11_DEPRECATED_SUGGEST(
"std::mem_fn")
1450 mem_fun(_Ret (_Tp::*__f)(_Arg) const)
1453 template<
typename _Ret,
typename _Tp,
typename _Arg>
1454 _GLIBCXX11_DEPRECATED_SUGGEST(
"std::mem_fn")
1456 mem_fun_ref(_Ret (_Tp::*__f)(_Arg))
1459 template<
typename _Ret,
typename _Tp,
typename _Arg>
1460 _GLIBCXX11_DEPRECATED_SUGGEST(
"std::mem_fn")
1462 mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const)
1464#pragma GCC diagnostic pop
1468#ifdef __glibcxx_transparent_operators
1469 template<
typename _Func,
typename _SfinaeType,
typename = __
void_t<>>
1470 struct __has_is_transparent
1473 template<
typename _Func,
typename _SfinaeType>
1474 struct __has_is_transparent<_Func, _SfinaeType,
1475 __void_t<typename _Func::is_transparent>>
1476 {
typedef void type; };
1478 template<
typename _Func,
typename _SfinaeType>
1479 using __has_is_transparent_t
1480 =
typename __has_is_transparent<_Func, _SfinaeType>::type;
1483 template<
typename _Func>
1484 concept __transparent_comparator
1485 =
requires {
typename _Func::is_transparent; };
1489_GLIBCXX_END_NAMESPACE_VERSION
1492#if (__cplusplus < 201103L) || _GLIBCXX_USE_DEPRECATED
__bool_constant< true > true_type
The type used as a compile-time boolean with true value.
__bool_constant< false > false_type
The type used as a compile-time boolean with false value.
auto declval() noexcept -> decltype(__declval< _Tp >(0))
constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
constexpr binary_negate< _Predicate > not2(const _Predicate &__pred)
One of the negation functors.
constexpr unary_negate< _Predicate > not1(const _Predicate &__pred)
One of the negation functors.
pointer_to_unary_function< _Arg, _Result > ptr_fun(_Result(*__x)(_Arg))
One of the adaptors for function pointers.
ISO C++ entities toplevel namespace is std.
_Arg argument_type
argument_type is the type of the argument
_Result result_type
result_type is the return type
_Result result_type
result_type is the return type
_Arg2 second_argument_type
second_argument_type is the type of the second argument
_Arg1 first_argument_type
first_argument_type is the type of the first argument
One of the math functors.
constexpr _Tp operator()(const _Tp &__x, const _Tp &__y) const
Returns the sum.
One of the math functors.
One of the math functors.
One of the math functors.
One of the math functors.
One of the math functors.
One of the comparison functors.
One of the comparison functors.
One of the comparison functors.
One of the comparison functors.
One of the comparison functors.
One of the comparison functors.
One of the Boolean operations functors.
One of the Boolean operations functors.
One of the Boolean operations functors.
One of the negation functors.
One of the negation functors.
One of the adaptors for function pointers.
One of the adaptors for function pointers.
One of the adaptors for member pointers.
One of the adaptors for member pointers.
One of the adaptors for member pointers.
One of the adaptors for member pointers.
One of the adaptors for member pointers.
One of the adaptors for member pointers.
One of the adaptors for member pointers.