rsx: Fix bug in reverse_iterator for simple_array

This commit is contained in:
kd-11 2025-07-27 03:06:46 +03:00 committed by kd-11
parent e0e0d1ee0b
commit 5911330f8b
2 changed files with 16 additions and 6 deletions

View File

@ -398,32 +398,32 @@ namespace rsx
reverse_iterator rbegin()
{
return reverse_iterator(end());
return reverse_iterator(end() - 1);
}
reverse_iterator rend()
{
return reverse_iterator(begin());
return reverse_iterator(begin() - 1);
}
const_reverse_iterator rbegin() const
{
return const_reverse_iterator(cend());
return crbegin();
}
const_reverse_iterator rend() const
{
return const_reverse_iterator(cbegin());
return crend();
}
const_reverse_iterator crbegin() const
{
return const_reverse_iterator(cend());
return const_reverse_iterator(cend() - 1);
}
const_reverse_iterator crend() const
{
return const_reverse_iterator(cbegin());
return const_reverse_iterator(cbegin() - 1);
}
bool any(std::predicate<const Ty&> auto predicate) const

View File

@ -229,5 +229,15 @@ namespace rsx
}
EXPECT_EQ(sum, 15);
rindex = 0;
sum = 0;
for (auto it = arr.crbegin(); it != arr.crend(); ++it, ++rindex)
{
EXPECT_EQ(*it, arr2[rindex]);
sum += *it;
}
EXPECT_EQ(sum, 15);
}
}