28 #ifndef BSL_REVERSE_ITERATOR_HPP 29 #define BSL_REVERSE_ITERATOR_HPP 77 template<
typename Iter>
116 [[nodiscard]] constexpr Iter
172 if (m_i.index() == 0U) {
176 return m_i.index() - 1U;
186 [[nodiscard]] constexpr
bool 199 [[nodiscard]] constexpr
bool 202 return 0U == m_i.index();
225 if (
nullptr == m_i.data()) {
229 if (m_i.index() == 0U) {
233 return &m_i.data()[m_i.index() - 1U];
281 [[nodiscard]] constexpr
bool 284 return lhs.base() == rhs.base();
299 [[nodiscard]] constexpr
bool 302 return !(lhs == rhs);
317 [[nodiscard]] constexpr
bool 320 return lhs.base() > rhs.base();
335 [[nodiscard]] constexpr
bool 338 return lhs.base() >= rhs.base();
353 [[nodiscard]] constexpr
bool 356 return lhs.base() < rhs.base();
371 [[nodiscard]] constexpr
bool 374 return lhs.base() <= rhs.base();
386 template<
typename Iter>
typename Iter::value_type value_type
alias for: typename Iter::value_type
Definition: reverse_iterator.hpp:82
constexpr bool operator==(reverse_iterator< T > const &lhs, reverse_iterator< T > const &rhs) noexcept
Returns lhs.base() == rhs.base()
Definition: reverse_iterator.hpp:282
bsl::uintmax difference_type
alias for: bsl::uintmax
Definition: reverse_iterator.hpp:86
constexpr reverse_iterator & operator++() noexcept
Increments the iterator.
Definition: reverse_iterator.hpp:244
constexpr reverse_iterator & operator--() noexcept
Decrements the iterator.
Definition: reverse_iterator.hpp:258
typename Iter::value_type & reference_type
alias for: typename Iter::value_type &
Definition: reverse_iterator.hpp:88
constexpr bool operator!=(reverse_iterator< T > const &lhs, reverse_iterator< T > const &rhs) noexcept
Returns lhs.base() != rhs.base()
Definition: reverse_iterator.hpp:300
bsl::uintmax size_type
alias for: bsl::uintmax
Definition: reverse_iterator.hpp:84
constexpr size_type index() const noexcept
Returns the iterator's current index. If the iterator is at the end, this function returns size().
Definition: reverse_iterator.hpp:170
constexpr bool operator>=(reverse_iterator< T > const &lhs, reverse_iterator< T > const &rhs) noexcept
Returns lhs.base() >= rhs.base()
Definition: reverse_iterator.hpp:372
constexpr bool is_end() const noexcept
Returns index() == 0.
Definition: reverse_iterator.hpp:200
typename Iter::value_type const & const_reference_type
alias for: typename Iter::value_type const &
Definition: reverse_iterator.hpp:90
Provides a reverse iterator as defined by the C++ specification, with the follwing differences:
Definition: reverse_iterator.hpp:78
constexpr reverse_iterator(Iter const &i) noexcept
Creates a reverse iterator given a an iterator to reverse. It should be noted that you should not cal...
Definition: reverse_iterator.hpp:105
typename Iter::value_type * pointer_type
alias for: typename Iter::value_type *
Definition: reverse_iterator.hpp:92
constexpr pointer_type data() noexcept
Returns a pointer to the array being iterated.
Definition: reverse_iterator.hpp:130
constexpr bool operator>(reverse_iterator< T > const &lhs, reverse_iterator< T > const &rhs) noexcept
Returns lhs.base() > rhs.base()
Definition: reverse_iterator.hpp:354
constexpr bool empty() const noexcept
Returns nullptr == data()
Definition: reverse_iterator.hpp:187
constexpr size_type size() const noexcept
Returns the number of elements in the array being iterated.
Definition: reverse_iterator.hpp:156
constexpr reverse_iterator< Iter > make_reverse_iterator(Iter const &i) noexcept
Constructs a reverse_iterator for a given provided iterator.
Definition: reverse_iterator.hpp:388
typename Iter::value_type const * const_pointer_type
alias for: typename Iter::value_type const *
Definition: reverse_iterator.hpp:94
::uintmax_t uintmax
defines a unsigned integer with the maximum possible size
Definition: cstdint.hpp:97
constexpr Iter base() const noexcept
Returns a pointer to the array being iterated.
Definition: reverse_iterator.hpp:117
constexpr pointer_type get_if() noexcept
Returns a pointer to the instance of T stored at the iterator's current index. If the index is out of...
Definition: reverse_iterator.hpp:223
constexpr const_pointer_type data() const noexcept
Returns a pointer to the array being iterated.
Definition: reverse_iterator.hpp:143