45class RandomAccessIterator
47 RandomAccessIterator<iterator_t>,
48 detail::iterator_to_value_type<iterator_t>>
51 friend class RandomAccessIteratorContainer;
53 friend class OpaqueSeriesIterator;
55 typename ConcreteIteratorClass,
57 typename... ConstructorArgs>
58 friend auto from_concrete_iterator(ConstructorArgs &&...args)
59 -> OpaqueSeriesIterator<ValueType>;
62 RandomAccessIterator<iterator_t>,
63 detail::iterator_to_value_type<iterator_t>>;
65 RandomAccessIterator(iterator_t it);
71 using typename parent_t::value_type;
73 ~RandomAccessIterator()
override;
75 RandomAccessIterator(RandomAccessIterator
const &other);
76 RandomAccessIterator(RandomAccessIterator &&other)
noexcept(
77 noexcept(iterator_t(std::declval<iterator_t &&>())));
79 RandomAccessIterator &operator=(RandomAccessIterator
const &other);
80 RandomAccessIterator &
81 operator=(RandomAccessIterator &&other)
noexcept(
noexcept(
82 std::declval<iterator_t>().operator=(std::declval<iterator_t &&>())));
84 auto operator*() -> value_type &;
85 auto operator*()
const -> value_type
const &;
87 auto operator++() -> RandomAccessIterator &;
88 auto operator--() -> RandomAccessIterator &;
89 auto operator++(
int) -> RandomAccessIterator;
90 auto operator--(
int) -> RandomAccessIterator;
92 using parent_t::operator!=;
93 bool operator==(RandomAccessIterator
const &other)
const;