On Monday, 3 April 2017 at 21:33:20 UTC, Timon Gehr wrote:
On 03.04.2017 20:24, Meta wrote:
On Monday, 3 April 2017 at 08:53:57 UTC, Andrea Fontana wrote:
https://isocpp.org/files/papers/p0636r0.html

The fold expressions and inference of constructor template args look very nice. C++ is quickly catching up to D in a lot of areas, although usually still with worse syntax. I don't know how fold expressions could
be emulated in D.

String mixins.

I try to avoid string mixins if possible as they're incredibly ugly. I did try hacking something together with templates and string mixins, though, but could not get it to work. I stopped here:

template fold(string op, Args...)
{
        static if (Args.length == 1)
                enum fold = Args[0];
        else
enum fold = mixin("Args[0] " ~ op ~ " fold!(op, Args[1..$])"); //variable _param_2 cannot be read at compile time
}

auto f(Args...)(Args args)
{
        return fold!("+", args);
}

void main()
{
        assert(f(1, 2, 3) == 6);
}

Any suggestions as to how to get something similar working?

Reply via email to