[alg.ends.with] (original) (raw)

template<[input_iterator](iterator.concept.input#concept:input%5Fiterator "24.3.4.9 Concept input_­iterator [iterator.concept.input]") I1, [sentinel_for](iterator.concept.sentinel#concept:sentinel%5Ffor "24.3.4.7 Concept sentinel_­for [iterator.concept.sentinel]")<I1> S1, [input_iterator](iterator.concept.input#concept:input%5Fiterator "24.3.4.9 Concept input_­iterator [iterator.concept.input]") I2, [sentinel_for](iterator.concept.sentinel#concept:sentinel%5Ffor "24.3.4.7 Concept sentinel_­for [iterator.concept.sentinel]")<I2> S2,class Pred = ranges::equal_to, class Proj1 = identity, class Proj2 = identity> requires ([forward_iterator](iterator.concept.forward#concept:forward%5Fiterator "24.3.4.11 Concept forward_­iterator [iterator.concept.forward]")<I1> || [sized_sentinel_for](iterator.concept.sizedsentinel#concept:sized%5Fsentinel%5Ffor "24.3.4.8 Concept sized_­sentinel_­for [iterator.concept.sizedsentinel]")<S1, I1>) && ([forward_iterator](iterator.concept.forward#concept:forward%5Fiterator "24.3.4.11 Concept forward_­iterator [iterator.concept.forward]")<I2> || [sized_sentinel_for](iterator.concept.sizedsentinel#concept:sized%5Fsentinel%5Ffor "24.3.4.8 Concept sized_­sentinel_­for [iterator.concept.sizedsentinel]")<S2, I2>) && [indirectly_comparable](alg.req.ind.cmp#concept:indirectly%5Fcomparable "24.3.7.5 Concept indirectly_­comparable [alg.req.ind.cmp]")<I1, I2, Pred, Proj1, Proj2> constexpr bool ranges::ends_with(I1 first1, S1 last1, I2 first2, S2 last2, Pred pred = {}, Proj1 proj1 = {}, Proj2 proj2 = {});

template<[input_range](range.refinements#concept:input%5Frange "25.4.5 Other range refinements [range.refinements]") R1, [input_range](range.refinements#concept:input%5Frange "25.4.5 Other range refinements [range.refinements]") R2, class Pred = ranges::equal_to, class Proj1 = identity,class Proj2 = identity> requires ([forward_range](range.refinements#concept:forward%5Frange "25.4.5 Other range refinements [range.refinements]")<R1> || [sized_range](range.sized#concept:sized%5Frange "25.4.3 Sized ranges [range.sized]")<R1>) && ([forward_range](range.refinements#concept:forward%5Frange "25.4.5 Other range refinements [range.refinements]")<R2> || [sized_range](range.sized#concept:sized%5Frange "25.4.3 Sized ranges [range.sized]")<R2>) && [indirectly_comparable](alg.req.ind.cmp#concept:indirectly%5Fcomparable "24.3.7.5 Concept indirectly_­comparable [alg.req.ind.cmp]")<iterator_t<R1>, iterator_t<R2>, Pred, Proj1, Proj2> constexpr bool ranges::ends_with(R1&& r1, R2&& r2, Pred pred = {}, Proj1 proj1 = {}, Proj2 proj2 = {});