The pull request above adds foreach_reverse without index to any set of bidirectional ranges (but if one or more is not bidirectional, foreach_reverse is of course not possible).
Indexed reverse iteration has more requirements:
All iterated ranges must have have a length, and the stoppingPolicy must be requireSameLength. Sadly, the latter is a runtime value, so it has to be handled with enforce. I'd have prefered to disallow it at compile-time.
Comment #3 by github-bugzilla — 2016-04-26T14:49:36Z