1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 06:57:45 +00:00

AK: Implement wrapper for reverse range for loop

Now it is possible to use range for loop in reverse mode for a
container.
```
	for (auto item : in_reverse(vector))
```
This commit is contained in:
Federico Guerinoni 2022-02-25 11:41:13 +01:00 committed by Andreas Kling
parent a54e20d958
commit f34fff852b
2 changed files with 28 additions and 1 deletions

View file

@ -87,4 +87,22 @@ private:
int m_index { 0 };
};
namespace ReverseWrapper {
template<typename Container>
struct ReverseWrapper {
Container& container;
};
template<typename Container>
auto begin(ReverseWrapper<Container> wrapper) { return wrapper.container.rbegin(); }
template<typename Container>
auto end(ReverseWrapper<Container> wrapper) { return wrapper.container.rend(); }
template<typename Container>
ReverseWrapper<Container> in_reverse(Container&& container) { return { container }; }
}
}