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