[libc++][math.h] Remove some code duplication

Reviewed By: ldionne, #libc

Spies: libcxx-commits

Differential Revision: https://reviews.llvm.org/D137500
This commit is contained in:
Nikolas Klauser 2022-11-04 17:01:22 +01:00
parent b0a29f6911
commit c702264762
1 changed files with 2 additions and 40 deletions

View File

@ -316,6 +316,7 @@ extern "C++" {
# ifdef signbit
# undef signbit
# endif // signbit
template <class _A1>
inline _LIBCPP_HIDE_FROM_ABI typename std::enable_if<std::is_floating_point<_A1>::value, bool>::type
@ -337,34 +338,11 @@ inline _LIBCPP_HIDE_FROM_ABI
return false;
}
# elif defined(_LIBCPP_MSVCRT)
template <typename _A1>
inline _LIBCPP_HIDE_FROM_ABI typename std::enable_if<std::is_floating_point<_A1>::value, bool>::type
signbit(_A1 __x) _NOEXCEPT {
return ::signbit(__x);
}
template <class _A1>
inline _LIBCPP_HIDE_FROM_ABI
typename std::enable_if< std::is_integral<_A1>::value && std::is_signed<_A1>::value, bool>::type
signbit(_A1 __x) _NOEXCEPT {
return __x < 0;
}
template <class _A1>
inline _LIBCPP_HIDE_FROM_ABI
typename std::enable_if< std::is_integral<_A1>::value && !std::is_signed<_A1>::value, bool>::type
signbit(_A1) _NOEXCEPT {
return false;
}
# endif // signbit
// fpclassify
# ifdef fpclassify
# undef fpclassify
# endif // fpclassify
template <class _A1>
inline _LIBCPP_HIDE_FROM_ABI typename std::enable_if<std::is_floating_point<_A1>::value, int>::type
@ -378,22 +356,6 @@ fpclassify(_A1 __x) _NOEXCEPT {
return __x == 0 ? FP_ZERO : FP_NORMAL;
}
# elif defined(_LIBCPP_MSVCRT)
template <typename _A1>
inline _LIBCPP_HIDE_FROM_ABI typename std::enable_if<std::is_floating_point<_A1>::value, bool>::type
fpclassify(_A1 __x) _NOEXCEPT {
return ::fpclassify(__x);
}
template <class _A1>
inline _LIBCPP_HIDE_FROM_ABI typename std::enable_if<std::is_integral<_A1>::value, int>::type
fpclassify(_A1 __x) _NOEXCEPT {
return __x == 0 ? FP_ZERO : FP_NORMAL;
}
# endif // fpclassify
// isfinite
# ifdef isfinite