Lines Matching full:__is_convertible
878 struct __is_convertible
894 template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 1, 0> : false_type {};
896 template <class _T1> struct __is_convertible<_T1, const typename remove_const<_T1>::type&, 1, 0> : true_type {};
898 template <class _T1> struct __is_convertible<_T1, _T1&&, 1, 0> : true_type {};
899 template <class _T1> struct __is_convertible<_T1, const typename remove_const<_T1>::type&&, 1, 0> : true_type {};
900 template <class _T1> struct __is_convertible<_T1, volatile typename remove_volatile<_T1>::type&&, 1, 0> : true_type {};
901 template <class _T1> struct __is_convertible<_T1, const volatile typename remove_cv<_T1>::type&&, 1, 0> : true_type {};
904 template <class _T1, class _T2> struct __is_convertible<_T1, _T2*, 1, 0>
905 : public integral_constant<bool, __is_convertible<typename remove_all_extents<_T1>::type*, _T2*>::value> {};
907 template <class _T1, class _T2> struct __is_convertible<_T1, _T2* const, 1, 0>
908 : public integral_constant<bool, __is_convertible<typename remove_all_extents<_T1>::type*, _T2*const>::value> {};
910 template <class _T1, class _T2> struct __is_convertible<_T1, _T2* volatile, 1, 0>
911 : public integral_constant<bool, __is_convertible<typename remove_all_extents<_T1>::type*, _T2*volatile>::value> {};
913 template <class _T1, class _T2> struct __is_convertible<_T1, _T2* const volatile, 1, 0>
914 : public integral_constant<bool, __is_convertible<typename remove_all_extents<_T1>::type*, _T2*const volatile>::value> {};
916 template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 2, 0> : public false_type {};
918 template <class _T1> struct __is_convertible<_T1, _T1&&, 2, 0> : public true_type {};
920 template <class _T1> struct __is_convertible<_T1, _T1&, 2, 0> : public true_type {};
921 template <class _T1> struct __is_convertible<_T1, _T1*, 2, 0> : public true_type {};
922 template <class _T1> struct __is_convertible<_T1, _T1*const, 2, 0> : public true_type {};
923 template <class _T1> struct __is_convertible<_T1, _T1*volatile, 2, 0> : public true_type {};
924 template <class _T1> struct __is_convertible<_T1, _T1*const volatile, 2, 0> : public true_type {};
927 template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 3, 0> : public false_type {};
930 template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 0, 1> : public false_type {};
931 template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 1, 1> : public false_type {};
932 template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 2, 1> : public false_type {};
933 template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 3, 1> : public false_type {};
936 template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 0, 2> : public false_type {};
937 template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 1, 2> : public false_type {};
938 template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 2, 2> : public false_type {};
939 template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 3, 2> : public false_type {};
942 template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 0, 3> : public false_type {};
943 template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 1, 3> : public false_type {};
944 template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 2, 3> : public false_type {};
945 template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 3, 3> : public true_type {};
948 : public __is_convertible<_T1, _T2>