358
358
template <class S, class T, class A> const_mem_fun1_ref_t<S,T,A> mem_fun_ref(S (T::*f)(A) const);
360
360
template<class R, class T> unspecified mem_fn(R T::*);
361
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...));
362
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) const);
363
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) volatile);
364
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) const volatile);
365
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) &);
366
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) const &);
367
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) volatile &);
368
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) const volatile &);
369
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) &&);
370
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) const &&);
371
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) volatile &&);
372
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) const volatile &&);
374
362
class bad_function_call
375
363
: public exception
503
491
template <class _Tp>
505
struct _LIBCPP_TYPE_VIS plus : binary_function<_Tp, _Tp, _Tp>
493
struct _LIBCPP_TYPE_VIS_ONLY plus : binary_function<_Tp, _Tp, _Tp>
507
_LIBCPP_INLINE_VISIBILITY _Tp operator()(const _Tp& __x, const _Tp& __y) const
495
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
496
_Tp operator()(const _Tp& __x, const _Tp& __y) const
508
497
{return __x + __y;}
511
500
#if _LIBCPP_STD_VER > 11
513
struct _LIBCPP_TYPE_VIS plus<void>
502
struct _LIBCPP_TYPE_VIS_ONLY plus<void>
515
504
template <class _T1, class _T2>
516
_LIBCPP_INLINE_VISIBILITY auto operator()(_T1&& __t, _T2&& __u) const
505
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
506
auto operator()(_T1&& __t, _T2&& __u) const
517
507
{ return _VSTD::forward<_T1>(__t) + _VSTD::forward<_T2>(__u); }
508
typedef void is_transparent;
525
516
template <class _Tp>
527
struct _LIBCPP_TYPE_VIS minus : binary_function<_Tp, _Tp, _Tp>
518
struct _LIBCPP_TYPE_VIS_ONLY minus : binary_function<_Tp, _Tp, _Tp>
529
_LIBCPP_INLINE_VISIBILITY _Tp operator()(const _Tp& __x, const _Tp& __y) const
520
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
521
_Tp operator()(const _Tp& __x, const _Tp& __y) const
530
522
{return __x - __y;}
533
525
#if _LIBCPP_STD_VER > 11
535
struct _LIBCPP_TYPE_VIS minus<void>
527
struct _LIBCPP_TYPE_VIS_ONLY minus<void>
537
529
template <class _T1, class _T2>
538
_LIBCPP_INLINE_VISIBILITY auto operator()(_T1&& __t, _T2&& __u) const
530
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
531
auto operator()(_T1&& __t, _T2&& __u) const
539
532
{ return _VSTD::forward<_T1>(__t) - _VSTD::forward<_T2>(__u); }
533
typedef void is_transparent;
547
541
template <class _Tp>
549
struct _LIBCPP_TYPE_VIS multiplies : binary_function<_Tp, _Tp, _Tp>
543
struct _LIBCPP_TYPE_VIS_ONLY multiplies : binary_function<_Tp, _Tp, _Tp>
551
_LIBCPP_INLINE_VISIBILITY _Tp operator()(const _Tp& __x, const _Tp& __y) const
545
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
546
_Tp operator()(const _Tp& __x, const _Tp& __y) const
552
547
{return __x * __y;}
555
550
#if _LIBCPP_STD_VER > 11
557
struct _LIBCPP_TYPE_VIS multiplies<void>
552
struct _LIBCPP_TYPE_VIS_ONLY multiplies<void>
559
554
template <class _T1, class _T2>
560
_LIBCPP_INLINE_VISIBILITY auto operator()(_T1&& __t, _T2&& __u) const
555
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
556
auto operator()(_T1&& __t, _T2&& __u) const
561
557
{ return _VSTD::forward<_T1>(__t) * _VSTD::forward<_T2>(__u); }
558
typedef void is_transparent;
569
566
template <class _Tp>
571
struct _LIBCPP_TYPE_VIS divides : binary_function<_Tp, _Tp, _Tp>
568
struct _LIBCPP_TYPE_VIS_ONLY divides : binary_function<_Tp, _Tp, _Tp>
573
_LIBCPP_INLINE_VISIBILITY _Tp operator()(const _Tp& __x, const _Tp& __y) const
570
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
571
_Tp operator()(const _Tp& __x, const _Tp& __y) const
574
572
{return __x / __y;}
577
575
#if _LIBCPP_STD_VER > 11
579
struct _LIBCPP_TYPE_VIS divides<void>
577
struct _LIBCPP_TYPE_VIS_ONLY divides<void>
581
579
template <class _T1, class _T2>
582
_LIBCPP_INLINE_VISIBILITY auto operator()(_T1&& __t, _T2&& __u) const
580
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
581
auto operator()(_T1&& __t, _T2&& __u) const
583
582
{ return _VSTD::forward<_T1>(__t) / _VSTD::forward<_T2>(__u); }
583
typedef void is_transparent;
591
591
template <class _Tp>
593
struct _LIBCPP_TYPE_VIS modulus : binary_function<_Tp, _Tp, _Tp>
593
struct _LIBCPP_TYPE_VIS_ONLY modulus : binary_function<_Tp, _Tp, _Tp>
595
_LIBCPP_INLINE_VISIBILITY _Tp operator()(const _Tp& __x, const _Tp& __y) const
595
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
596
_Tp operator()(const _Tp& __x, const _Tp& __y) const
596
597
{return __x % __y;}
599
600
#if _LIBCPP_STD_VER > 11
601
struct _LIBCPP_TYPE_VIS modulus<void>
602
struct _LIBCPP_TYPE_VIS_ONLY modulus<void>
603
604
template <class _T1, class _T2>
604
_LIBCPP_INLINE_VISIBILITY auto operator()(_T1&& __t, _T2&& __u) const
605
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
606
auto operator()(_T1&& __t, _T2&& __u) const
605
607
{ return _VSTD::forward<_T1>(__t) % _VSTD::forward<_T2>(__u); }
608
typedef void is_transparent;
613
616
template <class _Tp>
615
struct _LIBCPP_TYPE_VIS negate : unary_function<_Tp, _Tp>
618
struct _LIBCPP_TYPE_VIS_ONLY negate : unary_function<_Tp, _Tp>
617
_LIBCPP_INLINE_VISIBILITY _Tp operator()(const _Tp& __x) const
620
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
621
_Tp operator()(const _Tp& __x) const
621
625
#if _LIBCPP_STD_VER > 11
623
struct _LIBCPP_TYPE_VIS negate<void>
627
struct _LIBCPP_TYPE_VIS_ONLY negate<void>
625
629
template <class _Tp>
626
_LIBCPP_INLINE_VISIBILITY auto operator()(_Tp&& __x) const
630
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
631
auto operator()(_Tp&& __x) const
627
632
{ return -_VSTD::forward<_Tp>(__x); }
633
typedef void is_transparent;
635
641
template <class _Tp>
637
struct _LIBCPP_TYPE_VIS equal_to : binary_function<_Tp, _Tp, bool>
643
struct _LIBCPP_TYPE_VIS_ONLY equal_to : binary_function<_Tp, _Tp, bool>
639
_LIBCPP_INLINE_VISIBILITY bool operator()(const _Tp& __x, const _Tp& __y) const
645
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
646
bool operator()(const _Tp& __x, const _Tp& __y) const
640
647
{return __x == __y;}
643
650
#if _LIBCPP_STD_VER > 11
645
struct _LIBCPP_TYPE_VIS equal_to<void>
652
struct _LIBCPP_TYPE_VIS_ONLY equal_to<void>
647
template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY
654
template <class _T1, class _T2>
655
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
648
656
auto operator()(_T1&& __t, _T2&& __u) const
649
657
{ return _VSTD::forward<_T1>(__t) == _VSTD::forward<_T2>(__u); }
658
typedef void is_transparent;
657
666
template <class _Tp>
659
struct _LIBCPP_TYPE_VIS not_equal_to : binary_function<_Tp, _Tp, bool>
668
struct _LIBCPP_TYPE_VIS_ONLY not_equal_to : binary_function<_Tp, _Tp, bool>
661
_LIBCPP_INLINE_VISIBILITY bool operator()(const _Tp& __x, const _Tp& __y) const
670
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
671
bool operator()(const _Tp& __x, const _Tp& __y) const
662
672
{return __x != __y;}
665
675
#if _LIBCPP_STD_VER > 11
667
struct _LIBCPP_TYPE_VIS not_equal_to<void>
677
struct _LIBCPP_TYPE_VIS_ONLY not_equal_to<void>
669
template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY
679
template <class _T1, class _T2>
680
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
670
681
auto operator()(_T1&& __t, _T2&& __u) const
671
682
{ return _VSTD::forward<_T1>(__t) != _VSTD::forward<_T2>(__u); }
683
typedef void is_transparent;
679
691
template <class _Tp>
681
struct _LIBCPP_TYPE_VIS greater : binary_function<_Tp, _Tp, bool>
693
struct _LIBCPP_TYPE_VIS_ONLY greater : binary_function<_Tp, _Tp, bool>
683
_LIBCPP_INLINE_VISIBILITY bool operator()(const _Tp& __x, const _Tp& __y) const
695
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
696
bool operator()(const _Tp& __x, const _Tp& __y) const
684
697
{return __x > __y;}
687
700
#if _LIBCPP_STD_VER > 11
689
struct _LIBCPP_TYPE_VIS greater<void>
702
struct _LIBCPP_TYPE_VIS_ONLY greater<void>
691
template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY
704
template <class _T1, class _T2>
705
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
692
706
auto operator()(_T1&& __t, _T2&& __u) const
693
707
{ return _VSTD::forward<_T1>(__t) > _VSTD::forward<_T2>(__u); }
708
typedef void is_transparent;
703
718
template <class _Tp>
705
struct _LIBCPP_TYPE_VIS greater_equal : binary_function<_Tp, _Tp, bool>
720
struct _LIBCPP_TYPE_VIS_ONLY greater_equal : binary_function<_Tp, _Tp, bool>
707
_LIBCPP_INLINE_VISIBILITY bool operator()(const _Tp& __x, const _Tp& __y) const
722
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
723
bool operator()(const _Tp& __x, const _Tp& __y) const
708
724
{return __x >= __y;}
711
727
#if _LIBCPP_STD_VER > 11
713
struct _LIBCPP_TYPE_VIS greater_equal<void>
729
struct _LIBCPP_TYPE_VIS_ONLY greater_equal<void>
715
template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY
731
template <class _T1, class _T2>
732
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
716
733
auto operator()(_T1&& __t, _T2&& __u) const
717
734
{ return _VSTD::forward<_T1>(__t) >= _VSTD::forward<_T2>(__u); }
735
typedef void is_transparent;
725
743
template <class _Tp>
727
struct _LIBCPP_TYPE_VIS less_equal : binary_function<_Tp, _Tp, bool>
745
struct _LIBCPP_TYPE_VIS_ONLY less_equal : binary_function<_Tp, _Tp, bool>
729
_LIBCPP_INLINE_VISIBILITY bool operator()(const _Tp& __x, const _Tp& __y) const
747
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
748
bool operator()(const _Tp& __x, const _Tp& __y) const
730
749
{return __x <= __y;}
733
752
#if _LIBCPP_STD_VER > 11
735
struct _LIBCPP_TYPE_VIS less_equal<void>
754
struct _LIBCPP_TYPE_VIS_ONLY less_equal<void>
737
template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY
756
template <class _T1, class _T2>
757
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
738
758
auto operator()(_T1&& __t, _T2&& __u) const
739
759
{ return _VSTD::forward<_T1>(__t) <= _VSTD::forward<_T2>(__u); }
760
typedef void is_transparent;
747
768
template <class _Tp>
749
struct _LIBCPP_TYPE_VIS logical_and : binary_function<_Tp, _Tp, bool>
770
struct _LIBCPP_TYPE_VIS_ONLY logical_and : binary_function<_Tp, _Tp, bool>
751
_LIBCPP_INLINE_VISIBILITY bool operator()(const _Tp& __x, const _Tp& __y) const
772
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
773
bool operator()(const _Tp& __x, const _Tp& __y) const
752
774
{return __x && __y;}
755
777
#if _LIBCPP_STD_VER > 11
757
struct _LIBCPP_TYPE_VIS logical_and<void>
779
struct _LIBCPP_TYPE_VIS_ONLY logical_and<void>
759
template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY
781
template <class _T1, class _T2>
782
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
760
783
auto operator()(_T1&& __t, _T2&& __u) const
761
784
{ return _VSTD::forward<_T1>(__t) && _VSTD::forward<_T2>(__u); }
785
typedef void is_transparent;
769
793
template <class _Tp>
771
struct _LIBCPP_TYPE_VIS logical_or : binary_function<_Tp, _Tp, bool>
795
struct _LIBCPP_TYPE_VIS_ONLY logical_or : binary_function<_Tp, _Tp, bool>
773
_LIBCPP_INLINE_VISIBILITY bool operator()(const _Tp& __x, const _Tp& __y) const
797
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
798
bool operator()(const _Tp& __x, const _Tp& __y) const
774
799
{return __x || __y;}
777
802
#if _LIBCPP_STD_VER > 11
779
struct _LIBCPP_TYPE_VIS logical_or<void>
804
struct _LIBCPP_TYPE_VIS_ONLY logical_or<void>
781
template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY
806
template <class _T1, class _T2>
807
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
782
808
auto operator()(_T1&& __t, _T2&& __u) const
783
809
{ return _VSTD::forward<_T1>(__t) || _VSTD::forward<_T2>(__u); }
810
typedef void is_transparent;
791
818
template <class _Tp>
793
struct _LIBCPP_TYPE_VIS logical_not : unary_function<_Tp, bool>
820
struct _LIBCPP_TYPE_VIS_ONLY logical_not : unary_function<_Tp, bool>
795
_LIBCPP_INLINE_VISIBILITY bool operator()(const _Tp& __x) const
822
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
823
bool operator()(const _Tp& __x) const
799
827
#if _LIBCPP_STD_VER > 11
801
struct _LIBCPP_TYPE_VIS logical_not<void>
829
struct _LIBCPP_TYPE_VIS_ONLY logical_not<void>
803
831
template <class _Tp>
804
_LIBCPP_INLINE_VISIBILITY auto operator()(_Tp&& __x) const
832
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
833
auto operator()(_Tp&& __x) const
805
834
{ return !_VSTD::forward<_Tp>(__x); }
835
typedef void is_transparent;
813
843
template <class _Tp>
815
struct _LIBCPP_TYPE_VIS bit_and : binary_function<_Tp, _Tp, _Tp>
845
struct _LIBCPP_TYPE_VIS_ONLY bit_and : binary_function<_Tp, _Tp, _Tp>
817
_LIBCPP_INLINE_VISIBILITY _Tp operator()(const _Tp& __x, const _Tp& __y) const
847
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
848
_Tp operator()(const _Tp& __x, const _Tp& __y) const
818
849
{return __x & __y;}
821
852
#if _LIBCPP_STD_VER > 11
823
struct _LIBCPP_TYPE_VIS bit_and<void>
854
struct _LIBCPP_TYPE_VIS_ONLY bit_and<void>
825
template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY
856
template <class _T1, class _T2>
857
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
826
858
auto operator()(_T1&& __t, _T2&& __u) const
827
859
{ return _VSTD::forward<_T1>(__t) & _VSTD::forward<_T2>(__u); }
860
typedef void is_transparent;
835
868
template <class _Tp>
837
struct _LIBCPP_TYPE_VIS bit_or : binary_function<_Tp, _Tp, _Tp>
870
struct _LIBCPP_TYPE_VIS_ONLY bit_or : binary_function<_Tp, _Tp, _Tp>
839
_LIBCPP_INLINE_VISIBILITY _Tp operator()(const _Tp& __x, const _Tp& __y) const
872
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
873
_Tp operator()(const _Tp& __x, const _Tp& __y) const
840
874
{return __x | __y;}
843
877
#if _LIBCPP_STD_VER > 11
845
struct _LIBCPP_TYPE_VIS bit_or<void>
879
struct _LIBCPP_TYPE_VIS_ONLY bit_or<void>
847
template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY
881
template <class _T1, class _T2>
882
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
848
883
auto operator()(_T1&& __t, _T2&& __u) const
849
884
{ return _VSTD::forward<_T1>(__t) | _VSTD::forward<_T2>(__u); }
885
typedef void is_transparent;
857
893
template <class _Tp>
859
struct _LIBCPP_TYPE_VIS bit_xor : binary_function<_Tp, _Tp, _Tp>
895
struct _LIBCPP_TYPE_VIS_ONLY bit_xor : binary_function<_Tp, _Tp, _Tp>
861
_LIBCPP_INLINE_VISIBILITY _Tp operator()(const _Tp& __x, const _Tp& __y) const
897
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
898
_Tp operator()(const _Tp& __x, const _Tp& __y) const
862
899
{return __x ^ __y;}
865
902
#if _LIBCPP_STD_VER > 11
867
struct _LIBCPP_TYPE_VIS bit_xor<void>
904
struct _LIBCPP_TYPE_VIS_ONLY bit_xor<void>
869
template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY
906
template <class _T1, class _T2>
907
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
870
908
auto operator()(_T1&& __t, _T2&& __u) const
871
909
{ return _VSTD::forward<_T1>(__t) ^ _VSTD::forward<_T2>(__u); }
910
typedef void is_transparent;
876
915
#if _LIBCPP_STD_VER > 11
877
916
template <class _Tp = void>
878
struct _LIBCPP_TYPE_VIS bit_not : unary_function<_Tp, _Tp>
917
struct _LIBCPP_TYPE_VIS_ONLY bit_not : unary_function<_Tp, _Tp>
880
_LIBCPP_INLINE_VISIBILITY _Tp operator()(const _Tp& __x) const
919
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
920
_Tp operator()(const _Tp& __x) const
885
struct _LIBCPP_TYPE_VIS bit_not<void>
925
struct _LIBCPP_TYPE_VIS_ONLY bit_not<void>
887
927
template <class _Tp>
888
_LIBCPP_INLINE_VISIBILITY auto operator()(_Tp&& __x) const
928
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
929
auto operator()(_Tp&& __x) const
889
930
{ return ~_VSTD::forward<_Tp>(__x); }
931
typedef void is_transparent;
893
935
template <class _Predicate>
894
class _LIBCPP_TYPE_VIS unary_negate
936
class _LIBCPP_TYPE_VIS_ONLY unary_negate
895
937
: public unary_function<typename _Predicate::argument_type, bool>
897
939
_Predicate __pred_;
899
_LIBCPP_INLINE_VISIBILITY explicit unary_negate(const _Predicate& __pred)
941
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
942
explicit unary_negate(const _Predicate& __pred)
900
943
: __pred_(__pred) {}
901
_LIBCPP_INLINE_VISIBILITY bool operator()(const typename _Predicate::argument_type& __x) const
944
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
945
bool operator()(const typename _Predicate::argument_type& __x) const
902
946
{return !__pred_(__x);}
905
949
template <class _Predicate>
906
inline _LIBCPP_INLINE_VISIBILITY
950
inline _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
907
951
unary_negate<_Predicate>
908
952
not1(const _Predicate& __pred) {return unary_negate<_Predicate>(__pred);}
910
954
template <class _Predicate>
911
class _LIBCPP_TYPE_VIS binary_negate
955
class _LIBCPP_TYPE_VIS_ONLY binary_negate
912
956
: public binary_function<typename _Predicate::first_argument_type,
913
957
typename _Predicate::second_argument_type,
916
960
_Predicate __pred_;
918
_LIBCPP_INLINE_VISIBILITY explicit binary_negate(const _Predicate& __pred)
920
_LIBCPP_INLINE_VISIBILITY bool operator()(const typename _Predicate::first_argument_type& __x,
962
_LIBCPP_INLINE_VISIBILITY explicit _LIBCPP_CONSTEXPR_AFTER_CXX11
963
binary_negate(const _Predicate& __pred) : __pred_(__pred) {}
965
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
966
bool operator()(const typename _Predicate::first_argument_type& __x,
921
967
const typename _Predicate::second_argument_type& __y) const
922
968
{return !__pred_(__x, __y);}
925
971
template <class _Predicate>
926
inline _LIBCPP_INLINE_VISIBILITY
972
inline _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
927
973
binary_negate<_Predicate>
928
974
not2(const _Predicate& __pred) {return binary_negate<_Predicate>(__pred);}
930
976
template <class __Operation>
931
class _LIBCPP_TYPE_VIS binder1st
977
class _LIBCPP_TYPE_VIS_ONLY binder1st
932
978
: public unary_function<typename __Operation::second_argument_type,
933
979
typename __Operation::result_type>
1189
1235
return __mem_fn<_Rp _Tp::*>(__pm);
1192
template<class _Rp, class _Tp, class ..._Args>
1193
inline _LIBCPP_INLINE_VISIBILITY
1194
__mem_fn<_Rp (_Tp::*)(_Args...)>
1195
mem_fn(_Rp (_Tp::* __pm)(_Args...))
1197
return __mem_fn<_Rp (_Tp::*)(_Args...)>(__pm);
1200
template<class _Rp, class _Tp, class ..._Args>
1201
inline _LIBCPP_INLINE_VISIBILITY
1202
__mem_fn<_Rp (_Tp::*)(_Args...) const>
1203
mem_fn(_Rp (_Tp::* __pm)(_Args...) const)
1205
return __mem_fn<_Rp (_Tp::*)(_Args...) const>(__pm);
1208
template<class _Rp, class _Tp, class ..._Args>
1209
inline _LIBCPP_INLINE_VISIBILITY
1210
__mem_fn<_Rp (_Tp::*)(_Args...) volatile>
1211
mem_fn(_Rp (_Tp::* __pm)(_Args...) volatile)
1213
return __mem_fn<_Rp (_Tp::*)(_Args...) volatile>(__pm);
1216
template<class _Rp, class _Tp, class ..._Args>
1217
inline _LIBCPP_INLINE_VISIBILITY
1218
__mem_fn<_Rp (_Tp::*)(_Args...) const volatile>
1219
mem_fn(_Rp (_Tp::* __pm)(_Args...) const volatile)
1221
return __mem_fn<_Rp (_Tp::*)(_Args...) const volatile>(__pm);
1224
1238
// bad_function_call
1226
1240
class _LIBCPP_EXCEPTION_ABI bad_function_call