[libcxx-commits] [libcxx] be45fe5 - [libc++][spaceship] P1614R2: Removed ops from `complex`
Hristo Hristov via libcxx-commits
libcxx-commits at lists.llvm.org
Sun Jun 11 09:52:08 PDT 2023
Author: Hristo Hristov
Date: 2023-06-11T19:52:02+03:00
New Revision: be45fe5d8508b9e6988849ead6471aaad68405e5
URL: https://github.com/llvm/llvm-project/commit/be45fe5d8508b9e6988849ead6471aaad68405e5
DIFF: https://github.com/llvm/llvm-project/commit/be45fe5d8508b9e6988849ead6471aaad68405e5.diff
LOG: [libc++][spaceship] P1614R2: Removed ops from `complex`
Implements parts of P1614R2:
- Removed ops from `complex`
Reviewed By: #libc, Mordante
Differential Revision: https://reviews.llvm.org/D152615
Added:
Modified:
libcxx/docs/Status/SpaceshipProjects.csv
libcxx/include/complex
Removed:
################################################################################
diff --git a/libcxx/docs/Status/SpaceshipProjects.csv b/libcxx/docs/Status/SpaceshipProjects.csv
index 214ab8b0c243e..ddb2d98fd718f 100644
--- a/libcxx/docs/Status/SpaceshipProjects.csv
+++ b/libcxx/docs/Status/SpaceshipProjects.csv
@@ -137,7 +137,7 @@ Section,Description,Dependencies,Assignee,Complete
| `[alg.three.way] <https://wg21.link/alg.three.way>`_",| `lexicographical_compare_three_way <https://reviews.llvm.org/D131395>`_,[comparisons.three.way],Adrian Vogelsgesang,|Complete|
- `5.11 Clause 26: Numerics library <https://wg21.link/p1614r2#clause-26-numerics-library>`_,,,,
"| `[complex.syn] <https://wg21.link/complex.syn>`_
-| `[complex.ops] <https://wg21.link/complex.ops>`_",| remove ops `complex <https://reviews.llvm.org/D152615>`_,None,Hristo Hristov,|In Progress|
+| `[complex.ops] <https://wg21.link/complex.ops>`_",| remove ops `complex <https://reviews.llvm.org/D152615>`_,None,Hristo Hristov,|Complete|
"| `[class.slice.overview] <https://wg21.link/class.slice.overview>`_
| `[slice.ops] <https://wg21.link/slice.ops>`_",| `slice <https://reviews.llvm.org/D152617>`_,None,Hristo Hristov,|Complete|
- `5.12 Clause 27: Time library <https://wg21.link/p1614r2#clause-27-time-library>`_,,,,
diff --git a/libcxx/include/complex b/libcxx/include/complex
index 26f189d8bc486..d12cfa938dc3e 100644
--- a/libcxx/include/complex
+++ b/libcxx/include/complex
@@ -148,12 +148,12 @@ template<class T> complex<T> operator/(const complex<T>&, const T&); //
template<class T> complex<T> operator/(const T&, const complex<T>&); // constexpr in C++20
template<class T> complex<T> operator+(const complex<T>&); // constexpr in C++20
template<class T> complex<T> operator-(const complex<T>&); // constexpr in C++20
-template<class T> bool operator==(const complex<T>&, const complex<T>&); // constexpr in C++14
-template<class T> bool operator==(const complex<T>&, const T&); // constexpr in C++14
-template<class T> bool operator==(const T&, const complex<T>&); // constexpr in C++14
-template<class T> bool operator!=(const complex<T>&, const complex<T>&); // constexpr in C++14
-template<class T> bool operator!=(const complex<T>&, const T&); // constexpr in C++14
-template<class T> bool operator!=(const T&, const complex<T>&); // constexpr in C++14
+template<class T> bool operator==(const complex<T>&, const complex<T>&); // constexpr in C++14
+template<class T> bool operator==(const complex<T>&, const T&); // constexpr in C++14
+template<class T> bool operator==(const T&, const complex<T>&); // constexpr in C++14, removed in C++20
+template<class T> bool operator!=(const complex<T>&, const complex<T>&); // constexpr in C++14, removed in C++20
+template<class T> bool operator!=(const complex<T>&, const T&); // constexpr in C++14, removed in C++20
+template<class T> bool operator!=(const T&, const complex<T>&); // constexpr in C++14, removed in C++20
template<class T, class charT, class traits>
basic_istream<charT, traits>&
@@ -827,6 +827,8 @@ operator==(const complex<_Tp>& __x, const _Tp& __y)
return __x.real() == __y && __x.imag() == 0;
}
+#if _LIBCPP_STD_VER <= 17
+
template<class _Tp>
inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX14
bool
@@ -859,6 +861,8 @@ operator!=(const _Tp& __x, const complex<_Tp>& __y)
return !(__x == __y);
}
+#endif
+
// 26.3.7 values:
template <class _Tp, bool = is_integral<_Tp>::value,
More information about the libcxx-commits
mailing list