C++ Logo

std-proposals

Advanced search

Re: [std-proposals] Addition of std::contains to Simplify Container Value Checks

From: Ville Voutilainen <ville.voutilainen_at_[hidden]>
Date: Sun, 24 Dec 2023 15:50:51 +0200
On Sun, 24 Dec 2023 at 15:44, Bjorn Reese via Std-Proposals
<std-proposals_at_[hidden]> wrote:
>
> On 12/23/23 10:20, Robert Sitton via Std-Proposals wrote:
>
> > Function Signature:
> > template <typename Container, typename T>
> > bool std::contains(const Container& container, const T& value);
>
> Why does it deviate from all other standard algorithms that takes
> iterators (or ranges for std::ranges algorithms)?

Because it doesn't operate on iterators. If you pass a std::map to it,
it'll call std::map::contains,
it doesn't perform a silly linear walk from one iterator to another.
What we're looking at here is basically
"call the argument's contains() if available, do a ranges::contains otherwise".

Received on 2023-12-24 13:51:05