Implement C++20 constexpr comparison operators for __debug::array (P1023).
* include/debug/array: Add C++20 constexpr to comparison operators. * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adapt dg-error line numbers. * testsuite/23_containers/array/tuple_interface/ tuple_element_debug_neg.cc: Likewise. From-SVN: r276375
This commit is contained in:
parent
b54453598a
commit
2d2ad752c0
|
@ -234,16 +234,19 @@ namespace __debug
|
|||
|
||||
// Array comparisons.
|
||||
template<typename _Tp, std::size_t _Nm>
|
||||
_GLIBCXX20_CONSTEXPR
|
||||
inline bool
|
||||
operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
|
||||
{ return std::equal(__one.begin(), __one.end(), __two.begin()); }
|
||||
|
||||
template<typename _Tp, std::size_t _Nm>
|
||||
_GLIBCXX20_CONSTEXPR
|
||||
inline bool
|
||||
operator!=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
|
||||
{ return !(__one == __two); }
|
||||
|
||||
template<typename _Tp, std::size_t _Nm>
|
||||
_GLIBCXX20_CONSTEXPR
|
||||
inline bool
|
||||
operator<(const array<_Tp, _Nm>& __a, const array<_Tp, _Nm>& __b)
|
||||
{
|
||||
|
@ -252,16 +255,19 @@ namespace __debug
|
|||
}
|
||||
|
||||
template<typename _Tp, std::size_t _Nm>
|
||||
_GLIBCXX20_CONSTEXPR
|
||||
inline bool
|
||||
operator>(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
|
||||
{ return __two < __one; }
|
||||
|
||||
template<typename _Tp, std::size_t _Nm>
|
||||
_GLIBCXX20_CONSTEXPR
|
||||
inline bool
|
||||
operator<=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
|
||||
{ return !(__one > __two); }
|
||||
|
||||
template<typename _Tp, std::size_t _Nm>
|
||||
_GLIBCXX20_CONSTEXPR
|
||||
inline bool
|
||||
operator>=(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
|
||||
{ return !(__one < __two); }
|
||||
|
|
|
@ -27,6 +27,6 @@ int n1 = std::get<1>(a);
|
|||
int n2 = std::get<1>(std::move(a));
|
||||
int n3 = std::get<1>(ca);
|
||||
|
||||
// { dg-error "static assertion failed" "" { target *-*-* } 288 }
|
||||
// { dg-error "static assertion failed" "" { target *-*-* } 297 }
|
||||
// { dg-error "static assertion failed" "" { target *-*-* } 305 }
|
||||
// { dg-error "static assertion failed" "" { target *-*-* } 294 }
|
||||
// { dg-error "static assertion failed" "" { target *-*-* } 303 }
|
||||
// { dg-error "static assertion failed" "" { target *-*-* } 311 }
|
||||
|
|
|
@ -22,4 +22,4 @@
|
|||
|
||||
typedef std::tuple_element<1, std::array<int, 1>>::type type;
|
||||
|
||||
// { dg-error "static assertion failed" "" { target *-*-* } 331 }
|
||||
// { dg-error "static assertion failed" "" { target *-*-* } 376 }
|
||||
|
|
Loading…
Reference in New Issue