On Wed, Jun 29, 2011 at 1:19 PM, Alastair Rankine <arsptr@internode.on.net> wrote:
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
Surely you mean ha the reversed output would be: cba ?
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.)
Regards,
Neil Groves