Given a bidirectional range R, is it possible to select at compile time
whether we want to iterate forwards or backwards?
Below is a test app. At the commented line, I would like to
transparently construct a forward or reverse range, ie either
[begin(range), end(range)] or [rbegin(range), rend(range)] respectively,
depending on the definition of the Reversed template parameter.
Just to be clear, the desired output is:
forward: abc
reversed: abc
I can make this work by using a functor class with partial
specialisation to construct the iterator_range, using begin/end or
rbegin/rend respectively. But it's a bit ugly and it would seem like
something that boost range would provide anyway?
(Note that boost::reverse() is NOT what I am after.)
#include