16 template<
class container_t,
class derived_t =
void>
30 template<
class container_t,
class derived_t =
void>
34 std::conditional_t<std::same_as<derived_t, void>, iterator<container_t>, derived_t>>
44 [[nodiscard]] constexpr
typename super_type::reference operator*()
const noexcept;
45 [[nodiscard]] constexpr
typename super_type::pointer operator->()
const noexcept;
46 [[nodiscard]] constexpr
typename super_type::reference operator[](
typename super_type::size_type i)
const noexcept;
60 template<
class container_t,
class derived_t>
64 std::conditional_t<std::same_as<derived_t, void>, const const_iterator<container_t>, derived_t>>
68 std::conditional_t<std::same_as<derived_t, void>,
const const_iterator, derived_t>>;
74 [[nodiscard]] constexpr
typename super_type::const_reference operator*()
const noexcept;
75 [[nodiscard]] constexpr
typename super_type::const_pointer operator->()
const noexcept;
76 [[nodiscard]] constexpr
typename super_type::const_reference operator[](
77 typename super_type::size_type m)
const noexcept;
80 template<
class container_t,
class derived_t =
void>
94 template<
class container_t,
class derived_t =
void>
98 std::conditional_t<std::same_as<derived_t, void>, reverse_iterator<container_t>, derived_t>>
104 std::conditional_t<std::same_as<derived_t, void>,
reverse_iterator, derived_t>>;
109 [[nodiscard]] constexpr
typename super_type::reference operator*()
const noexcept;
110 [[nodiscard]] constexpr
typename super_type::pointer operator->()
const noexcept;
111 [[nodiscard]] constexpr
typename super_type::reference operator[](
typename super_type::size_type m)
const noexcept;
125 template<
class container_t,
class derived_t>
129 std::conditional_t<std::same_as<derived_t, void>, const const_reverse_iterator<container_t>, derived_t>>
139 [[nodiscard]] constexpr
typename super_type::const_reference operator*()
const noexcept;
140 [[nodiscard]] constexpr
typename super_type::const_pointer operator->()
const noexcept;
141 [[nodiscard]] constexpr
typename super_type::const_reference operator[](
142 typename super_type::size_type m)
const noexcept;
Basic contiguous forward iterator, meaning that incrementing an iterator will lead it moving forward.
Base contiguous iterator with a container pointer and an index.
Basic contiguous reverse iterator, meaning that incrementing an iterator will lead it moving backward...
Const random access iterator type.
Const reverse random access iterator type.
Non-const random access iterator type.
Non-const random access reverse iterator type.