ranges::v3::unique_copy_fn Struct Reference
Algorithms

## Public Member Functions

template<typename I , typename S , typename O , typename C = equal_to, typename P = ident, requires = (UniqueCopyable<I, O, C, P>() && Sentinel<S, I>())>
tagged_pair< tag::in(I), tag::out(O)> | operator() (I begin, S end, O out, C pred=C{}, P proj=P{}) const
| template function unique_copy More...
template<typename Rng , typename O , typename C = equal_to, typename P = ident, typename I = iterator_t<Rng>, requires = (UniqueCopyable<I, O, C, P>() && Range<Rng>())>
tagged_pair< tag::in(safe_iterator_t< Rng >), tag::out(O)> | operator() (Rng &&rng, O out, C pred=C{}, P proj=P{}) const

## Member Function Documentation

## operator()() [1/2]

template<typename I , typename S , typename O , typename C = equal_to, typename P = ident, requires = (UniqueCopyable<I, O, C, P>() && Sentinel<S, I>())>

tagged_pair<tag::in(I), tag::out(O)> ranges::v3::unique_copy_fn::operator() | ( | I | begin,
|  | S | end,
|  | O | out,
|  | C | pred = `C{}`,
|  | P | proj = `P{}`
| ) |  | const

template function unique_copy

range-based version of the `unique_copy` std algorithm

Precondition
  InputView is a model of the `InputView` concept
  `O` is a model of the `WeakOutputIterator` concept
  `C` is a model of the `Relation` concept

References ranges::v3::move.

## operator()() [2/2]

template<typename Rng , typename O , typename C = equal_to, typename P = ident, typename I = iterator_t<Rng>, requires = (UniqueCopyable<I, O, C, P>() && Range<Rng>())>

tagged_pair<tag::in(safe_iterator_t<Rng>), tag::out(O)> ranges::v3::unique_copy_fn::operator() | ( | Rng && | rng,
|  | O | out,
|  | C | pred = `C{}`,
|  | P | proj = `P{}`
| ) |  | const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

References ranges::v3::begin, ranges::v3::end, and ranges::v3::move.