Simplifying a string mixin

Simen Kjærås simen.kjaras at
Tue Feb 26 10:09:58 UTC 2019

On Monday, 25 February 2019 at 21:04:48 UTC, Adam D. Ruppe wrote:
> On Monday, 25 February 2019 at 20:57:37 UTC, Victor Porton 
> wrote:
>> Also, what is the most proper thing to check that `name` is a 
>> proper identified (not say !@#)?
> just let the compiler do it imo.

Agreed. There are times when error message can be significantly 
more readable though, if testing for valid names is done in 
intelligent places. In this case, something like this can be of 

enum isValidName(string s) = __traits(compiles, { mixin("int 
"~s~";"); });

unittest {
     static assert(isValidName!"a");
     static assert(isValidName!"a_B");
     static assert(!isValidName!"6a");
     static assert(!isValidName!"");
     static assert(!isValidName!"!");


More information about the Digitalmars-d-learn mailing list