AK: Use Iterator's trait when comparing a value

It's not needed, from what I can gather, but I changed it just for
the correctness sake.
This commit is contained in:
Karol Kosek 2023-08-21 13:48:34 +02:00 committed by Andreas Kling
parent e575ee4462
commit 9663ccff77
Notes: sideshowbarker 2024-07-16 23:44:30 +09:00

View File

@ -23,19 +23,17 @@ template<typename TEndIterator, IteratorPairWith<TEndIterator> TIterator, typena
return last;
}
template<typename TEndIterator, IteratorPairWith<TEndIterator> TIterator, typename T>
[[nodiscard]] constexpr TIterator find(TIterator first, TEndIterator last, T const& value)
template<typename TEndIterator, IteratorPairWith<TEndIterator> TIterator, typename V>
[[nodiscard]] constexpr TIterator find(TIterator first, TEndIterator last, V const& value)
{
// FIXME: Use the iterator's trait type, and swap arguments in equals call.
return find_if(first, last, [&](auto const& v) { return Traits<T>::equals(value, v); });
return find_if(first, last, [&]<typename T>(T const& entry) { return Traits<T>::equals(entry, value); });
}
template<typename TEndIterator, IteratorPairWith<TEndIterator> TIterator, typename T>
[[nodiscard]] constexpr size_t find_index(TIterator first, TEndIterator last, T const& value)
template<typename TEndIterator, IteratorPairWith<TEndIterator> TIterator, typename V>
[[nodiscard]] constexpr size_t find_index(TIterator first, TEndIterator last, V const& value)
requires(requires(TIterator it) { it.index(); })
{
// FIXME: Use the iterator's trait type, and swap arguments in equals call.
return find_if(first, last, [&](auto const& v) { return Traits<T>::equals(value, v); }).index();
return find_if(first, last, [&]<typename T>(T const& entry) { return Traits<T>::equals(entry, value); }).index();
}
}