This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of NAD Concepts status.

### 914. Superfluous requirement for unique

Section: 27.7.9 [alg.unique] Status: NAD Concepts Submitter: Daniel Krügler Opened: 2008-10-03 Last modified: 2016-01-28

Priority: Not Prioritized

View all other issues in [alg.unique].

View all issues with NAD Concepts status.

Discussion:

27.7.9 [alg.unique]/2: "Requires: The comparison function shall be an equivalence relation."

The essence of this is already covered by the given requirement

>     EquivalenceRelation<auto, Iter::value_type> Pred

and should thus be removed.

[ Batavia (2009-05): ]

> We agree with the proposed resolution. Move to Tentatively Ready.

Proposed resolution:

Remove 27.7.9 [alg.unique]/2

>     template<ForwardIterator Iter>
>       requires OutputIterator<Iter, Iter::reference>
>             && EqualityComparable<Iter::value_type>
>       Iter unique(Iter first, Iter last);

>     template<ForwardIterator Iter, EquivalenceRelation<auto, Iter::value_type> Pred>
>       requires OutputIterator<Iter, RvalueOf<Iter::reference>::type>
>             && CopyConstructible<Pred>
>       Iter unique(Iter first, Iter last,
>                    Pred pred);

> > 1 Effects: ...

> > 2 Requires: The comparison function shall be an equivalence relation.