std.d.lexer : voting thread

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Mon Oct 7 21:34:49 PDT 2013


On 10/7/13 9:26 PM, Andrei Alexandrescu wrote:
> On 10/7/13 9:21 PM, Jakob Ovrum wrote:
>> On Tuesday, 8 October 2013 at 00:16:45 UTC, Andrei Alexandrescu wrote:
>>> http://dpaste.dzfl.pl/d07dd46d
>>
>> I have to say, that `generateCases` function is rather disgusting. I'm
>> really worried about the trend of using string mixins when not
>> necessary, for no apparent gain. Surely you could have used static
>> foreach to generate those cases instead, allowing code that is actually
>> readable. It would probably have much better compile-time performance as
>> well, but that's just speculation.
>
> This is the first shot, and I'm more interested in the API with the
> implementation to be improved. Your idea sounds great - care to put it
> in code so we see how it does?
>
> Andrei

FWIW I just tried this, and it seems to work swell.

int main(string[] args) {
   alias TypeTuple!(1, 2, 3, 4) tt;
   int a;
   switch (args.length) {
     foreach (i, _; tt) {
       case i + 1: return i * 42;
     }
     default: break;
   }
   return 0;
}

Interesting!


Andrei



More information about the Digitalmars-d mailing list