Lines Matching defs:bidirectional_iterator
167 class bidirectional_iterator
172 template <class U> friend class bidirectional_iterator;
180 TEST_CONSTEXPR bidirectional_iterator() : it_() {}
181 TEST_CONSTEXPR explicit bidirectional_iterator(It it) : it_(it) {}
184 TEST_CONSTEXPR bidirectional_iterator(const bidirectional_iterator<U>& u) : it_(u.it_), tracker_(u.tracker_) {}
187 TEST_CONSTEXPR_CXX14 bidirectional_iterator(bidirectional_iterator<U>&& u)
194 TEST_CONSTEXPR_CXX14 bidirectional_iterator& operator++() {++it_; return *this;}
195 TEST_CONSTEXPR_CXX14 bidirectional_iterator& operator--() {--it_; return *this;}
196 TEST_CONSTEXPR_CXX14 bidirectional_iterator operator++(int) {return bidirectional_iterator(it_++);}
197 TEST_CONSTEXPR_CXX14 bidirectional_iterator operator--(int) {return bidirectional_iterator(it_--);}
199 friend TEST_CONSTEXPR bool operator==(const bidirectional_iterator& x, const bidirectional_iterator& y) {return x.it_ == y.it_;}
200 friend TEST_CONSTEXPR bool operator!=(const bidirectional_iterator& x, const bidirectional_iterator& y) {return x.it_ != y.it_;}
202 friend TEST_CONSTEXPR It base(const bidirectional_iterator& i) { return i.it_; }
209 bidirectional_iterator(It) -> bidirectional_iterator<It>;
809 std::conditional_t<std::bidirectional_iterator<It>, std::bidirectional_iterator_tag,
853 requires std::bidirectional_iterator<It>
862 requires std::bidirectional_iterator<It>
1309 } else if constexpr (std::bidirectional_iterator<Base>) {
1376 // to satisfy bidirectional_iterator
1378 requires std::bidirectional_iterator<Base> {
1384 requires std::bidirectional_iterator<Base> {
1467 using BidirectionalProxyIterator = ProxyIterator<bidirectional_iterator<Iter>>;
1659 concatenate_t<random_access_iterator_list<Ptr>, type_list<bidirectional_iterator<Ptr> > >;