AA code 50x slower
    evilrat 
    evilrat666 at gmail.com
       
    Sun Feb 16 13:50:49 UTC 2020
    
    
  
On Sunday, 16 February 2020 at 12:57:43 UTC, AlphaPurned wrote:
> template AA(string[] S)
> {
> 	auto _do() { int[string] d; foreach(s; S) d[s] = 0; return d; }
> 	enum AA = _do;
> }
>
My best guess is that enum arrays(except strings) and AA's are 
instantiated every time you access them.
This is especially bad with loops.
Probably you want static or module level variable instead.
Module level AA's can't have compile time initializer, however 
you can do initialization with module constructor instead.
https://dlang.org/spec/module.html#staticorder
    
    
More information about the Digitalmars-d-learn
mailing list