No static fold in phobos ?
userabcABC123 via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Nov 27 16:21:19 PST 2015
On Friday, 27 November 2015 at 23:46:32 UTC, Ali Çehreli wrote:
> On 11/27/2015 12:57 PM, userabcABC123 wrote:
>> That would work on an AliasSeq ?
>> I'm surprised not to find one:
>>
>> eg:
>>
>> ~~~~~~~
>> enum seq = AliasSeq!("aa", "bb");
>> enum val = staticFold!((a,b)=>a~b, seq);
>> static assert(val == "aabb");
>> ~~~~~~~
>>
>> it works with foreach or a eponymous template that consumes
>> the sequence
>> , but as said where is it in phobos ?
>
> Thanks to CTFE, there is usually no need for static of anything
> in D. Your code works with a few changes:
>
> import std.meta;
> import std.algorithm;
>
> void main() {
> enum seq = AliasSeq!("aa", "bb");
> enum val = [ seq ].reduce!((a, b) => a ~ b);
> static assert(val == "aabb");
> }
>
> Ali
Thx, so the trick was to pack seq in something that's a range...
More information about the Digitalmars-d-learn
mailing list