Lines Matching defs:random_access_iterator

213 class random_access_iterator
218 template <class U> friend class random_access_iterator;
226 TEST_CONSTEXPR random_access_iterator() : it_() {}
227 TEST_CONSTEXPR explicit random_access_iterator(It it) : it_(it) {}
230 TEST_CONSTEXPR random_access_iterator(const random_access_iterator<U>& u) : it_(u.it_), tracker_(u.tracker_) {}
233 TEST_CONSTEXPR_CXX14 random_access_iterator(random_access_iterator<U>&& u)
241 TEST_CONSTEXPR_CXX14 random_access_iterator& operator++() {++it_; return *this;}
242 TEST_CONSTEXPR_CXX14 random_access_iterator& operator--() {--it_; return *this;}
243 TEST_CONSTEXPR_CXX14 random_access_iterator operator++(int) {return random_access_iterator(it_++);}
244 TEST_CONSTEXPR_CXX14 random_access_iterator operator--(int) {return random_access_iterator(it_--);}
246 TEST_CONSTEXPR_CXX14 random_access_iterator& operator+=(difference_type n) {it_ += n; return *this;}
247 TEST_CONSTEXPR_CXX14 random_access_iterator& operator-=(difference_type n) {it_ -= n; return *this;}
248 friend TEST_CONSTEXPR_CXX14 random_access_iterator operator+(random_access_iterator x, difference_type n) {x += n; return x;}
249 friend TEST_CONSTEXPR_CXX14 random_access_iterator operator+(difference_type n, random_access_iterator x) {x += n; return x;}
250 friend TEST_CONSTEXPR_CXX14 random_access_iterator operator-(random_access_iterator x, difference_type n) {x -= n; return x;}
251 friend TEST_CONSTEXPR difference_type operator-(random_access_iterator x, random_access_iterator y) {return x.it_ - y.it_;}
253 friend TEST_CONSTEXPR bool operator==(const random_access_iterator& x, const random_access_iterator& y) {return x.it_ == y.it_;}
254 friend TEST_CONSTEXPR bool operator!=(const random_access_iterator& x, const random_access_iterator& y) {return x.it_ != y.it_;}
255 friend TEST_CONSTEXPR bool operator< (const random_access_iterator& x, const random_access_iterator& y) {return x.it_ < y.it_;}
256 friend TEST_CONSTEXPR bool operator<=(const random_access_iterator& x, const random_access_iterator& y) {return x.it_ <= y.it_;}
257 friend TEST_CONSTEXPR bool operator> (const random_access_iterator& x, const random_access_iterator& y) {return x.it_ > y.it_;}
258 friend TEST_CONSTEXPR bool operator>=(const random_access_iterator& x, const random_access_iterator& y) {return x.it_ >= y.it_;}
260 friend TEST_CONSTEXPR It base(const random_access_iterator& i) { return i.it_; }
267 random_access_iterator(It) -> random_access_iterator<It>;
272 template <std::random_access_iterator It>
277 template <std::random_access_iterator>
363 static_assert(std::random_access_iterator<cpp20_random_access_iterator<int*>>);
808 std::conditional_t<std::random_access_iterator<It>, std::random_access_iterator_tag,
870 requires std::random_access_iterator<It>
879 requires std::random_access_iterator<It>
888 requires std::random_access_iterator<It>
894 requires std::random_access_iterator<It>
900 requires std::random_access_iterator<It>
925 requires std::random_access_iterator<It>
931 requires std::random_access_iterator<It>
937 requires std::random_access_iterator<It>
943 requires std::random_access_iterator<It>
1178 static_assert(std::random_access_iterator<rvalue_iterator<int*>>);
1307 if constexpr (std::random_access_iterator<Base>) {
1390 // to satisfy random_access_iterator
1392 requires std::random_access_iterator<Base> {
1398 requires std::random_access_iterator<Base> {
1404 requires std::random_access_iterator<Base> {
1409 requires std::random_access_iterator<Base> {
1414 requires std::random_access_iterator<Base> {
1419 requires std::random_access_iterator<Base> {
1424 requires std::random_access_iterator<Base> {
1429 requires(std::random_access_iterator<Base> && std::three_way_comparable<Base>) {
1434 requires std::random_access_iterator<Base> {
1439 requires std::random_access_iterator<Base> {
1444 requires std::random_access_iterator<Base> {
1449 requires std::random_access_iterator<Base> {
1470 using RandomAccessProxyIterator = ProxyIterator<random_access_iterator<Iter>>;
1655 random_access_iterator<Ptr> >;