Iros
 
Loading...
Searching...
No Matches
random_access_iterator.h
Go to the documentation of this file.
1#pragma once
2
8#include "di/meta/compare.h"
9
10namespace di::concepts {
11template<typename Iter>
15 requires(Iter iterator, Iter const citerator, meta::IteratorSSizeType<Iter> const n) {
16 { iterator += n } -> SameAs<Iter&>;
17 { citerator + n } -> SameAs<Iter>;
18 { n + citerator } -> SameAs<Iter>;
19 { iterator -= n } -> SameAs<Iter&>;
20 { citerator - n } -> SameAs<Iter>;
21 { citerator[n] } -> SameAs<meta::IteratorReference<Iter>>;
22 };
23}
Definition bidirectional_iterator.h:8
Definition operations.h:114
Definition random_access_iterator.h:12
Definition core.h:114
Definition sized_sentinel_for.h:9
Definition compare.h:103
Definition any_storable.h:9
decltype(container::iterator_ssize_type(types::in_place_type< meta::RemoveCVRef< T > >)) IteratorSSizeType
Definition iterator_ssize_type.h:8
Definition random_access_iterator_tag.h:6