Lines Matching defs:contiguous_iterator
365 template <std::contiguous_iterator It>
366 class contiguous_iterator {
370 template <std::contiguous_iterator U>
371 friend class contiguous_iterator;
383 constexpr contiguous_iterator() : it_() {}
384 constexpr explicit contiguous_iterator(It it) : it_(it) {}
387 constexpr contiguous_iterator(const contiguous_iterator<U>& u) : it_(u.it_), tracker_(u.tracker_) {}
390 constexpr contiguous_iterator(contiguous_iterator<U>&& u) : it_(std::move(u.it_)), tracker_(std::move(u.tracker_)) {
398 constexpr contiguous_iterator& operator++() {
402 constexpr contiguous_iterator& operator--() {
406 constexpr contiguous_iterator operator++(int) { return contiguous_iterator(it_++); }
407 constexpr contiguous_iterator operator--(int) { return contiguous_iterator(it_--); }
409 constexpr contiguous_iterator& operator+=(difference_type n) {
413 constexpr contiguous_iterator& operator-=(difference_type n) {
417 friend constexpr contiguous_iterator operator+(contiguous_iterator x, difference_type n) {
421 friend constexpr contiguous_iterator operator+(difference_type n, contiguous_iterator x) {
425 friend constexpr contiguous_iterator operator-(contiguous_iterator x, difference_type n) {
429 friend constexpr difference_type operator-(contiguous_iterator x, contiguous_iterator y) { return x.it_ - y.it_; }
431 friend constexpr bool operator==(const contiguous_iterator& x, const contiguous_iterator& y) {
434 friend constexpr bool operator!=(const contiguous_iterator& x, const contiguous_iterator& y) {
437 friend constexpr bool operator<(const contiguous_iterator& x, const contiguous_iterator& y) { return x.it_ < y.it_; }
438 friend constexpr bool operator<=(const contiguous_iterator& x, const contiguous_iterator& y) {
441 friend constexpr bool operator>(const contiguous_iterator& x, const contiguous_iterator& y) { return x.it_ > y.it_; }
442 friend constexpr bool operator>=(const contiguous_iterator& x, const contiguous_iterator& y) {
448 friend constexpr It base(const contiguous_iterator& i) { return i.it_; }
454 contiguous_iterator(It) -> contiguous_iterator<It>;
807 std::conditional_t<std::contiguous_iterator<It>, std::contiguous_iterator_tag,
1473 using ContiguousProxyIterator = ProxyIterator<contiguous_iterator<Iter>>;
1653 contiguous_iterator<Ptr>,