27 Iterators library [iterators]

27.5 Iterator adaptors [predef.iterators]

27.5.1 Reverse iterators [reverse.iterators] reverse_­iterator requirements [reverse.iter.requirements]

The template parameter Iterator shall satisfy all the requirements of a Bidirectional Iterator ([bidirectional.iterators]).
Additionally, Iterator shall satisfy the requirements of a random access iterator ([random.access.iterators]) if any of the members operator+, operator-, operator+=, operator-= ([reverse.iter.nav]), operator[] ([reverse.iter.elem]), or the non-member operators ([reverse.iter.cmp]) operator<, operator>, operator<=, operator>=, operator-, or operator+ ([reverse.iter.nonmember]) are referenced in a way that requires instantiation ([temp.inst]).