1616#include < __type_traits/is_integral.h>
1717#include < __type_traits/is_signed.h>
1818#include < __type_traits/promote.h>
19- #include < limits>
2019
2120#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
2221# pragma GCC system_header
@@ -45,12 +44,7 @@ _LIBCPP_NODISCARD inline _LIBCPP_HIDE_FROM_ABI bool signbit(_A1) _NOEXCEPT {
4544
4645// isfinite
4746
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 >
5448_LIBCPP_NODISCARD _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool isfinite (_A1) _NOEXCEPT {
5549 return true ;
5650}
@@ -69,12 +63,7 @@ _LIBCPP_NODISCARD inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI boo
6963
7064// isinf
7165
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 >
7867_LIBCPP_NODISCARD _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool isinf (_A1) _NOEXCEPT {
7968 return false ;
8069}
@@ -98,11 +87,6 @@ _LIBCPP_NODISCARD inline _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI boo
9887
9988// isnan
10089
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-
10690template <class _A1 , __enable_if_t <is_integral<_A1>::value, int > = 0 >
10791_LIBCPP_NODISCARD _LIBCPP_CONSTEXPR_SINCE_CXX23 _LIBCPP_HIDE_FROM_ABI bool isnan (_A1) _NOEXCEPT {
10892 return false ;
0 commit comments