Is it possible to use a template to choose between foreach and foreach_reverse?
pineapple via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sat Jun 4 10:16:45 PDT 2016
On Saturday, 4 June 2016 at 15:43:01 UTC, Mihail K wrote:
> As far as I recall, foreach_reverse is deprecated in favour of
> range operations.
> ie.
>
> import std.algorithm, std.range;
>
> static if(forward)
> {
> items.each!(item => doStuff());
> }
> else
> {
> items.retro.each!(item => doStuff());
> }
>
> As for your question, I suggest writing a range function that
> calls retro conditionally. Something like,
>
> items.direction!(forward).each!(item => doStuff());
Won't this pattern fail if items is a type implementing opApply
and/or opApplyReverse?
More information about the Digitalmars-d-learn
mailing list