[libcxx-commits] [libcxx] Make C++ 20 std::midpoint compatible with libc++ (PR #74217)
Sanjay Marreddi via libcxx-commits
libcxx-commits at lists.llvm.org
Sat Dec 2 17:00:35 PST 2023
https://github.com/SanjayMarreddi created https://github.com/llvm/llvm-project/pull/74217
Fixes #67046
>From dff55d1f59ea7fcc8afde6f6be1b66a205bbb6ef Mon Sep 17 00:00:00 2001
From: SanjayMarreddi <sanjay.mareddi at gmail.com>
Date: Sun, 3 Dec 2023 00:55:07 +0000
Subject: [PATCH] Make C++ 20 std::midpoint compatible with libc++
---
libcxx/include/__numeric/midpoint.h | 13 +++----------
1 file changed, 3 insertions(+), 10 deletions(-)
diff --git a/libcxx/include/__numeric/midpoint.h b/libcxx/include/__numeric/midpoint.h
index 5325f5e6b322a..a77f8f2eefb37 100644
--- a/libcxx/include/__numeric/midpoint.h
+++ b/libcxx/include/__numeric/midpoint.h
@@ -51,19 +51,12 @@ _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK
return __a + __half_diff;
}
-
template <class _TPtr>
-_LIBCPP_INLINE_VISIBILITY constexpr
-enable_if_t<is_pointer_v<_TPtr>
- && is_object_v<remove_pointer_t<_TPtr>>
- && ! is_void_v<remove_pointer_t<_TPtr>>
- && (sizeof(remove_pointer_t<_TPtr>) > 0), _TPtr>
-midpoint(_TPtr __a, _TPtr __b) noexcept
-{
- return __a + _VSTD::midpoint(ptrdiff_t(0), __b - __a);
+_LIBCPP_INLINE_VISIBILITY constexpr enable_if_t<is_object_v<_TPtr> && !is_void_v<_TPtr> && (sizeof(_TPtr) > 0), _TPtr*>
+midpoint(_TPtr* __a, _TPtr* __b) noexcept {
+ return __a + _VSTD::midpoint(ptrdiff_t(0), __b - __a);
}
-
template <typename _Tp>
_LIBCPP_HIDE_FROM_ABI constexpr int __sign(_Tp __val) {
return (_Tp(0) < __val) - (__val < _Tp(0));
More information about the libcxx-commits
mailing list