mirror of
https://github.com/SerenityOS/serenity
synced 2024-09-06 17:06:31 +00:00
AK/Complex: C++20-compatible comparison operators
Problem: - Clang correctly reports non-`const` member function comparison operators as ambiguous. Solution: - Make them `const`.
This commit is contained in:
parent
97f4aa166a
commit
0ac02b9084
|
@ -243,13 +243,13 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
template<AK::Concepts::Arithmetic U>
|
template<AK::Concepts::Arithmetic U>
|
||||||
constexpr bool operator==(const Complex<U>& a)
|
constexpr bool operator==(const Complex<U>& a) const
|
||||||
{
|
{
|
||||||
return (this->real() == a.real()) && (this->imag() == a.imag());
|
return (this->real() == a.real()) && (this->imag() == a.imag());
|
||||||
}
|
}
|
||||||
|
|
||||||
template<AK::Concepts::Arithmetic U>
|
template<AK::Concepts::Arithmetic U>
|
||||||
constexpr bool operator!=(const Complex<U>& a)
|
constexpr bool operator!=(const Complex<U>& a) const
|
||||||
{
|
{
|
||||||
return !(*this == a);
|
return !(*this == a);
|
||||||
}
|
}
|
||||||
|
|
|
@ -119,7 +119,14 @@ TEST_CASE(assign_moved_self)
|
||||||
{
|
{
|
||||||
RefPtr<Object> object = adopt(*new Object);
|
RefPtr<Object> object = adopt(*new Object);
|
||||||
EXPECT_EQ(object->ref_count(), 1u);
|
EXPECT_EQ(object->ref_count(), 1u);
|
||||||
|
#ifdef __clang__
|
||||||
|
# pragma clang diagnostic push
|
||||||
|
# pragma clang diagnostic ignored "-Wself-move"
|
||||||
|
#endif
|
||||||
object = move(object);
|
object = move(object);
|
||||||
|
#ifdef __clang__
|
||||||
|
# pragma clang diagnostic pop
|
||||||
|
#endif
|
||||||
EXPECT_EQ(object->ref_count(), 1u);
|
EXPECT_EQ(object->ref_count(), 1u);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue