2.2 KiB
2.2 KiB
[range.utility.helpers]
25 Ranges library [ranges]
25.5 Range utilities [range.utility]
25.5.2 Helper concepts [range.utility.helpers]
Many of the types in [range.utility] are specified in terms of the following exposition-only concepts:templateconcept simple-view = // exposition onlyview && range &&same_as<iterator_t, iterator_t> &&same_as<sentinel_t, sentinel_t>;
templateconcept has-arrow = // exposition onlyinput_iterator && (is_pointer_v || requires(const I i) { i.operator->(); });
template<class T, class U>concept different-from = // exposition only<remove_cvref_t, remove_cvref_t>;
templateconcept range-with-movable-references = // exposition onlyinput_range && move_constructible<range_reference_t> &&move_constructible<range_rvalue_reference_t>;