Commit a45fb21a by Jonathan Wakely

libstdc++: Remove redundant bool casts in ranges algorithms

Some of these casts were added by me the other day, but some were
already present. I think they are all redundant following the
introduction of the boolean-testable concept in P1964R2.

	* include/bits/ranges_algo.h (__find_fn, __find_first_of_fn)
	(__adjacent_find_fn, __remove_if_fn, __remove_copy_if_fn)
	(__unique_fn, __unique_copy_fn): Remove redundant conversions to bool.
parent 73d53120
2020-02-19 Jonathan Wakely <jwakely@redhat.com>
* include/bits/ranges_algo.h (__find_fn, __find_first_of_fn)
(__adjacent_find_fn, __remove_if_fn, __remove_copy_if_fn)
(__unique_fn, __unique_copy_fn): Remove redundant conversions to bool.
2020-02-18 Patrick Palka <ppalka@redhat.com> 2020-02-18 Patrick Palka <ppalka@redhat.com>
P1983R0 Wording for GB301, US296, US292, US291, and US283 P1983R0 Wording for GB301, US296, US292, US291, and US283
......
...@@ -244,7 +244,7 @@ namespace ranges ...@@ -244,7 +244,7 @@ namespace ranges
const _Tp& __value, _Proj __proj = {}) const const _Tp& __value, _Proj __proj = {}) const
{ {
while (__first != __last while (__first != __last
&& !(bool)(std::__invoke(__proj, *__first) == __value)) && !(std::__invoke(__proj, *__first) == __value))
++__first; ++__first;
return __first; return __first;
} }
...@@ -333,7 +333,7 @@ namespace ranges ...@@ -333,7 +333,7 @@ namespace ranges
{ {
for (; __first1 != __last1; ++__first1) for (; __first1 != __last1; ++__first1)
for (auto __iter = __first2; __iter != __last2; ++__iter) for (auto __iter = __first2; __iter != __last2; ++__iter)
if ((bool)std::__invoke(__pred, if (std::__invoke(__pred,
std::__invoke(__proj1, *__first1), std::__invoke(__proj1, *__first1),
std::__invoke(__proj2, *__iter))) std::__invoke(__proj2, *__iter)))
return __first1; return __first1;
...@@ -730,7 +730,7 @@ namespace ranges ...@@ -730,7 +730,7 @@ namespace ranges
auto __next = __first; auto __next = __first;
for (; ++__next != __last; __first = __next) for (; ++__next != __last; __first = __next)
{ {
if ((bool)std::__invoke(__pred, if (std::__invoke(__pred,
std::__invoke(__proj, *__first), std::__invoke(__proj, *__first),
std::__invoke(__proj, *__next))) std::__invoke(__proj, *__next)))
return __first; return __first;
...@@ -1219,7 +1219,7 @@ namespace ranges ...@@ -1219,7 +1219,7 @@ namespace ranges
auto __result = __first; auto __result = __first;
++__first; ++__first;
for (; __first != __last; ++__first) for (; __first != __last; ++__first)
if (!(bool)std::__invoke(__pred, std::__invoke(__proj, *__first))) if (!std::__invoke(__pred, std::__invoke(__proj, *__first)))
{ {
*__result = std::move(*__first); *__result = std::move(*__first);
++__result; ++__result;
...@@ -1289,7 +1289,7 @@ namespace ranges ...@@ -1289,7 +1289,7 @@ namespace ranges
_Pred __pred, _Proj __proj = {}) const _Pred __pred, _Proj __proj = {}) const
{ {
for (; __first != __last; ++__first) for (; __first != __last; ++__first)
if (!(bool)std::__invoke(__pred, std::__invoke(__proj, *__first))) if (!std::__invoke(__pred, std::__invoke(__proj, *__first)))
{ {
*__result = *__first; *__result = *__first;
++__result; ++__result;
...@@ -1372,7 +1372,7 @@ namespace ranges ...@@ -1372,7 +1372,7 @@ namespace ranges
auto __dest = __first; auto __dest = __first;
++__first; ++__first;
while (++__first != __last) while (++__first != __last)
if (!(bool)std::__invoke(__comp, if (!std::__invoke(__comp,
std::__invoke(__proj, *__dest), std::__invoke(__proj, *__dest),
std::__invoke(__proj, *__first))) std::__invoke(__proj, *__first)))
*++__dest = std::move(*__first); *++__dest = std::move(*__first);
...@@ -1420,7 +1420,7 @@ namespace ranges ...@@ -1420,7 +1420,7 @@ namespace ranges
auto __next = __first; auto __next = __first;
*__result = *__next; *__result = *__next;
while (++__next != __last) while (++__next != __last)
if (!(bool)std::__invoke(__comp, if (!std::__invoke(__comp,
std::__invoke(__proj, *__first), std::__invoke(__proj, *__first),
std::__invoke(__proj, *__next))) std::__invoke(__proj, *__next)))
{ {
...@@ -1434,7 +1434,7 @@ namespace ranges ...@@ -1434,7 +1434,7 @@ namespace ranges
{ {
*__result = *__first; *__result = *__first;
while (++__first != __last) while (++__first != __last)
if (!(bool)std::__invoke(__comp, if (!std::__invoke(__comp,
std::__invoke(__proj, *__result), std::__invoke(__proj, *__result),
std::__invoke(__proj, *__first))) std::__invoke(__proj, *__first)))
*++__result = *__first; *++__result = *__first;
......
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