Commit a4a1f965 by Jonathan Wakely Committed by Jonathan Wakely

libstdc++: Remove redundant inequality operators in <stop_token>

	* include/std/stop_token (stop_token): Remove operator!= (LWG 3254).
	(stop_source): Likewise (LWG 3362).
	* testsuite/30_threads/stop_token/stop_source.cc: Test equality
	comparisons.

From-SVN: r279897
parent f31a99f7
2020-01-06 Jonathan Wakely <jwakely@redhat.com> 2020-01-06 Jonathan Wakely <jwakely@redhat.com>
* include/std/stop_token (stop_token): Remove operator!= (LWG 3254).
(stop_source): Likewise (LWG 3362).
* testsuite/30_threads/stop_token/stop_source.cc: Test equality
comparisons.
* include/bits/stl_algobase.h (__is_byte_iter, __min_cmp) * include/bits/stl_algobase.h (__is_byte_iter, __min_cmp)
(lexicographical_compare_three_way): Do not depend on (lexicographical_compare_three_way): Do not depend on
__cpp_lib_concepts. __cpp_lib_concepts.
......
...@@ -87,16 +87,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -87,16 +87,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
[[nodiscard]] [[nodiscard]]
friend bool friend bool
operator==(const stop_token& __a, const stop_token& __b) operator==(const stop_token& __a, const stop_token& __b)
{ { return __a._M_state == __b._M_state; }
return __a._M_state == __b._M_state;
}
[[nodiscard]]
friend bool
operator!=(const stop_token& __a, const stop_token& __b)
{
return __a._M_state != __b._M_state;
}
friend void friend void
swap(stop_token& __lhs, stop_token& __rhs) noexcept swap(stop_token& __lhs, stop_token& __rhs) noexcept
...@@ -301,13 +292,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -301,13 +292,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return __a._M_state == __b._M_state; return __a._M_state == __b._M_state;
} }
[[nodiscard]]
friend bool
operator!=(const stop_source& __a, const stop_source& __b) noexcept
{
return __a._M_state != __b._M_state;
}
friend void friend void
swap(stop_source& __lhs, stop_source& __rhs) noexcept swap(stop_source& __lhs, stop_source& __rhs) noexcept
{ {
......
...@@ -27,12 +27,18 @@ test01() ...@@ -27,12 +27,18 @@ test01()
std::stop_source ssrc; std::stop_source ssrc;
VERIFY( ssrc.stop_possible() ); VERIFY( ssrc.stop_possible() );
VERIFY( !ssrc.stop_requested() ); VERIFY( !ssrc.stop_requested() );
VERIFY( ssrc == ssrc );
VERIFY( !(ssrc != ssrc) );
std::stop_source copy(ssrc); std::stop_source copy(ssrc);
VERIFY( copy.stop_possible() ); VERIFY( copy.stop_possible() );
VERIFY( !copy.stop_requested() ); VERIFY( !copy.stop_requested() );
VERIFY( ssrc.stop_possible() ); VERIFY( ssrc.stop_possible() );
VERIFY( !ssrc.stop_requested() ); VERIFY( !ssrc.stop_requested() );
VERIFY( copy == ssrc );
VERIFY( !(copy != ssrc) );
VERIFY( ssrc == ssrc );
VERIFY( !(ssrc != ssrc) );
std::stop_source move(std::move(ssrc)); std::stop_source move(std::move(ssrc));
VERIFY( move.stop_possible() ); VERIFY( move.stop_possible() );
...@@ -41,6 +47,14 @@ test01() ...@@ -41,6 +47,14 @@ test01()
VERIFY( !copy.stop_requested() ); VERIFY( !copy.stop_requested() );
VERIFY( !ssrc.stop_possible() ); VERIFY( !ssrc.stop_possible() );
VERIFY( !ssrc.stop_requested() ); VERIFY( !ssrc.stop_requested() );
VERIFY( !(move == ssrc) );
VERIFY( move != ssrc );
VERIFY( ssrc == ssrc );
VERIFY( !(ssrc != ssrc) );
VERIFY( move == copy );
VERIFY( !(move != copy) );
VERIFY( !(copy == ssrc) );
VERIFY( copy != ssrc );
} }
void void
...@@ -52,12 +66,18 @@ test02() ...@@ -52,12 +66,18 @@ test02()
std::stop_source ssrc(std::nostopstate); std::stop_source ssrc(std::nostopstate);
VERIFY( !ssrc.stop_possible() ); VERIFY( !ssrc.stop_possible() );
VERIFY( !ssrc.stop_requested() ); VERIFY( !ssrc.stop_requested() );
VERIFY( ssrc == ssrc );
VERIFY( !(ssrc != ssrc) );
std::stop_source copy(ssrc); std::stop_source copy(ssrc);
VERIFY( !copy.stop_possible() ); VERIFY( !copy.stop_possible() );
VERIFY( !copy.stop_requested() ); VERIFY( !copy.stop_requested() );
VERIFY( !ssrc.stop_possible() ); VERIFY( !ssrc.stop_possible() );
VERIFY( !ssrc.stop_requested() ); VERIFY( !ssrc.stop_requested() );
VERIFY( copy == ssrc );
VERIFY( !(copy != ssrc) );
VERIFY( ssrc == ssrc );
VERIFY( !(ssrc != ssrc) );
std::stop_source move(std::move(ssrc)); std::stop_source move(std::move(ssrc));
VERIFY( !move.stop_possible() ); VERIFY( !move.stop_possible() );
...@@ -66,24 +86,39 @@ test02() ...@@ -66,24 +86,39 @@ test02()
VERIFY( !copy.stop_requested() ); VERIFY( !copy.stop_requested() );
VERIFY( !ssrc.stop_possible() ); VERIFY( !ssrc.stop_possible() );
VERIFY( !ssrc.stop_requested() ); VERIFY( !ssrc.stop_requested() );
VERIFY( move == ssrc );
VERIFY( !(move != ssrc) );
VERIFY( ssrc == ssrc );
VERIFY( !(ssrc != ssrc) );
VERIFY( move == copy );
VERIFY( !(move != copy) );
VERIFY( copy == ssrc );
VERIFY( !(copy != ssrc) );
} }
void void
test03() test03()
{ {
std::stop_source s1; std::stop_source s1;
std::stop_source copy(s1);
s1.request_stop(); s1.request_stop();
std::stop_source s2(std::nostopstate); std::stop_source s2(std::nostopstate);
VERIFY( s1 != s2 );
s1.swap(s2); s1.swap(s2);
VERIFY( !s1.stop_possible() ); VERIFY( !s1.stop_possible() );
VERIFY( !s1.stop_requested() ); VERIFY( !s1.stop_requested() );
VERIFY( s2.stop_possible() ); VERIFY( s2.stop_possible() );
VERIFY( s2.stop_requested() ); VERIFY( s2.stop_requested() );
VERIFY( s1 != s2 );
VERIFY( s2 == copy );
swap(s1, s2); swap(s1, s2);
VERIFY( s1.stop_possible() ); VERIFY( s1.stop_possible() );
VERIFY( s1.stop_requested() ); VERIFY( s1.stop_requested() );
VERIFY( !s2.stop_possible() ); VERIFY( !s2.stop_possible() );
VERIFY( !s2.stop_requested() ); VERIFY( !s2.stop_requested() );
VERIFY( s1 == copy );
} }
int main() int main()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment