[OT] ISO C++ 17 changes
Meta via Digitalmars-d
digitalmars-d at puremagic.com
Tue Apr 4 06:29:00 PDT 2017
On Tuesday, 4 April 2017 at 05:04:04 UTC, Dukc wrote:
> On Monday, 3 April 2017 at 21:43:41 UTC, Meta wrote:
>> On Monday, 3 April 2017 at 21:33:20 UTC, Timon Gehr wrote:
>> Any suggestions as to how to get something similar working?
>
> auto fold(string op, Args...)(Args args)
> {
> foreach(e; args[1 .. $]) args[0] += e;
> return args[0];
> }
>
> void main()
> {
> import std.stdio;
> fold!"+"(1, 2, 3).writeln; //6
> }
This does work I guess. I'm not sure if the foreach will be
unrolled or not but if it is I guess this is fairly close to the
C++ example. However, it's still more verbose. My goal was to
emulate almost exactly what C++ was doing by using a template so
you could just write "fold!('+', args)" and have it automatically
rewritten as "Args[0] + Args[1] + Args[2] ...". However it gets
difficult because the compiler is trying to interpret args at
compile time.
More information about the Digitalmars-d
mailing list