Fastest way to check using if identifier has already been defined,  using static if or similar?
    Q. Schroll 
    qs.il.paperinik at gmail.com
       
    Thu Jun  4 14:20:45 UTC 2020
    
    
  
On Thursday, 4 June 2020 at 09:03:40 UTC, Simen Kjærås wrote:
> string exists(string s) {
>     return "__traits(compiles, { mixin(\"alias _ = "~s~";\"); 
> })";
> }
Little nitpicking, but D has many forms of string literals. 
Escaping is hard to read especially without syntax highlighting. 
Escaping to me is an old hack C did we shouldn't really use.
     string exists(string s) {
         return `__traits(compiles, { mixin("alias _ = ` ~ s ~ 
`;"); })`;
     }
The _ as a name, to me, proves that a __traits(freshName), that 
returns a string that is distinct from every symbol name visible 
from the point it's defined,  would be useful in these occasions. 
Because if someone used _ as an identifier in a context where the 
`exisits` function is used, it might fail.
    
    
More information about the Digitalmars-d-learn
mailing list