13 template<
class container_t,
class derived_t>
14 [[nodiscard]] constexpr
typename iterator<container_t, derived_t>::super_type::reference iterator<
16 derived_t>::operator*()
const noexcept
18 return super_type::get();
21 template<
class container_t,
class derived_t>
22 [[nodiscard]] constexpr
typename iterator<container_t, derived_t>::super_type::pointer iterator<
24 derived_t>::operator->() const noexcept
26 return &super_type::get();
29 template<
class container_t,
class derived_t>
30 [[nodiscard]] constexpr
typename iterator<container_t, derived_t>::super_type::reference iterator<
32 derived_t>::operator[](
typename super_type::size_type i)
const noexcept
34 return super_type::get(i);
37 template<
class container_t,
class derived_t>
38 constexpr const_iterator<container_t, derived_t>::const_iterator(
const iterator<container_t>& it) noexcept
39 : super_type(it.m_pContainer, it.m_nIndex)
43 template<
class container_t,
class derived_t>
44 [[nodiscard]] constexpr
typename const_iterator<container_t, derived_t>::super_type::const_reference const_iterator<
46 derived_t>::operator*()
const noexcept
48 return super_type::get();
51 template<
class container_t,
class derived_t>
52 [[nodiscard]] constexpr
typename const_iterator<container_t, derived_t>::super_type::const_pointer const_iterator<
54 derived_t>::operator->() const noexcept
56 return &super_type::get();
59 template<
class container_t,
class derived_t>
60 [[nodiscard]] constexpr
typename const_iterator<container_t, derived_t>::super_type::const_reference const_iterator<
62 derived_t>::operator[](
typename super_type::size_type m)
const noexcept
64 return super_type::get(m);
67 template<
class container_t,
class derived_t>
68 [[nodiscard]] constexpr
typename reverse_iterator<container_t, derived_t>::super_type::reference reverse_iterator<
70 derived_t>::operator*()
const noexcept
72 return super_type::get();
75 template<
class container_t,
class derived_t>
76 [[nodiscard]] constexpr
typename reverse_iterator<container_t, derived_t>::super_type::pointer reverse_iterator<
78 derived_t>::operator->() const noexcept
80 return &super_type::get();
83 template<
class container_t,
class derived_t>
84 [[nodiscard]] constexpr
typename reverse_iterator<container_t, derived_t>::super_type::reference reverse_iterator<
86 derived_t>::operator[](
typename super_type::size_type m)
const noexcept
88 return super_type::get(m);
91 template<
class container_t,
class derived_t>
92 constexpr const_reverse_iterator<container_t, derived_t>::const_reverse_iterator(
93 const reverse_iterator<container_t>& it) noexcept
94 : super_type(it.m_pContainer, it.m_nIndex)
98 template<
class container_t,
class derived_t>
99 [[nodiscard]] constexpr
typename const_reverse_iterator<container_t, derived_t>::super_type::const_reference
100 const_reverse_iterator<container_t, derived_t>::operator*() const noexcept
102 return super_type::get();
105 template<
class container_t,
class derived_t>
106 [[nodiscard]] constexpr
typename const_reverse_iterator<container_t, derived_t>::super_type::const_pointer
107 const_reverse_iterator<container_t, derived_t>::operator->() const noexcept
109 return &super_type::get();
112 template<
class container_t,
class derived_t>
113 [[nodiscard]] constexpr
typename const_reverse_iterator<container_t, derived_t>::super_type::const_reference
114 const_reverse_iterator<container_t, derived_t>::operator[](
typename super_type::size_type m)
const noexcept
116 return super_type::get(m);