AK: Add reverse iterator as member

This commit is contained in:
Federico Guerinoni 2022-03-05 14:05:56 +01:00 committed by Andreas Kling
parent f34fff852b
commit 0aed2f0f86
3 changed files with 14 additions and 0 deletions

View file

@ -41,6 +41,11 @@ public:
ALWAYS_INLINE constexpr Iterator end() { return Iterator::end(*this); }
ALWAYS_INLINE constexpr ReverseIterator rend() { return ReverseIterator::rend(*this); }
ALWAYS_INLINE constexpr auto in_reverse()
{
return ReverseWrapper::in_reverse(*this);
}
ALWAYS_INLINE PtrType& ptr_at(size_t index) { return Base::at(index); }
ALWAYS_INLINE const PtrType& ptr_at(size_t index) const { return Base::at(index); }

View file

@ -704,6 +704,11 @@ public:
Iterator end() { return Iterator::end(*this); }
ReverseIterator rend() { return ReverseIterator::rend(*this); }
ALWAYS_INLINE constexpr auto in_reverse()
{
return ReverseWrapper::in_reverse(*this);
}
template<typename TUnaryPredicate>
ConstIterator find_if(TUnaryPredicate&& finder) const
{

View file

@ -567,4 +567,8 @@ TEST_CASE(reverse_range_for_loop)
int index = 9;
for (auto item : AK::ReverseWrapper::in_reverse(v))
EXPECT_EQ(item, index--);
index = 9;
for (auto item : v.in_reverse())
EXPECT_EQ(item, index--);
}