memoize & __traits(compiles...)
    John Chapman 
    johnch_atms at hotmail.com
       
    Fri Nov 23 10:34:11 UTC 2018
    
    
  
I'm doing a fair amount of repeatedly checking if a function 
compiles with __traits(compiles...), executing the function if 
so, erroring out if not, like this:
   static if (__traits(compiles, generateFunc1())) {
     return generateFunc1();
   } static if (__traits(compiles, generateFunc2())) {
     return generateFunc2();
   } else static assert(false);
But it seems inefficient to have to evaluate those functions 
twice, so I'd like to optimise this so if __traits(compiles...) 
succeeds, the result is cached and then used when the function is 
actually called. I wondered if using std.functional.memoize would 
help?
    
    
More information about the Digitalmars-d-learn
mailing list