16
16
#include < __type_traits/is_integral.h>
17
17
#include < __type_traits/is_signed.h>
18
18
#include < __type_traits/promote.h>
19
- #include < limits>
20
19
21
20
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
22
21
# pragma GCC system_header
@@ -45,12 +44,7 @@ _LIBCPP_NODISCARD inline _LIBCPP_HIDE_FROM_ABI bool signbit(_A1) _NOEXCEPT {
45
44
46
45
// isfinite
47
46
48
- template <class _A1 , __enable_if_t <is_arithmetic<_A1>::value && numeric_limits<_A1>::has_infinity, int > = 0 >
49
- _LIBCPP_NODISCARD _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool isfinite (_A1 __x) _NOEXCEPT {
50
- return __builtin_isfinite ((typename __promote<_A1>::type)__x);
51
- }
52
-
53
- template <class _A1 , __enable_if_t <is_arithmetic<_A1>::value && !numeric_limits<_A1>::has_infinity, int > = 0 >
47
+ template <class _A1 , __enable_if_t <is_integral<_A1>::value, int > = 0 >
54
48
_LIBCPP_NODISCARD _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool isfinite (_A1) _NOEXCEPT {
55
49
return true ;
56
50
}
@@ -69,12 +63,7 @@ _LIBCPP_NODISCARD inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI boo
69
63
70
64
// isinf
71
65
72
- template <class _A1 , __enable_if_t <is_arithmetic<_A1>::value && numeric_limits<_A1>::has_infinity, int > = 0 >
73
- _LIBCPP_NODISCARD _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool isinf (_A1 __x) _NOEXCEPT {
74
- return __builtin_isinf ((typename __promote<_A1>::type)__x);
75
- }
76
-
77
- template <class _A1 , __enable_if_t <is_arithmetic<_A1>::value && !numeric_limits<_A1>::has_infinity, int > = 0 >
66
+ template <class _A1 , __enable_if_t <is_integral<_A1>::value, int > = 0 >
78
67
_LIBCPP_NODISCARD _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool isinf (_A1) _NOEXCEPT {
79
68
return false ;
80
69
}
@@ -98,11 +87,6 @@ _LIBCPP_NODISCARD inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI boo
98
87
99
88
// isnan
100
89
101
- template <class _A1 , __enable_if_t <is_floating_point<_A1>::value, int > = 0 >
102
- _LIBCPP_NODISCARD _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool isnan (_A1 __x) _NOEXCEPT {
103
- return __builtin_isnan (__x);
104
- }
105
-
106
90
template <class _A1 , __enable_if_t <is_integral<_A1>::value, int > = 0 >
107
91
_LIBCPP_NODISCARD _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool isnan (_A1) _NOEXCEPT {
108
92
return false ;
0 commit comments