assert format of a string before a mixin

ddcovery antoniocabreraperez at gmail.com
Sun Sep 27 21:38:43 UTC 2020


I have a "variation" of "unaryFun" that I name "unaryProp" that, 
basically, doesn't require to specify "a." at the beginning of 
the expression.

> template unaryProp(alias propName)
> {
>   static assert(is(typeof(propName) : string), "Sorry, propName 
> must be an string");
>   auto unaryProp(ElementType)(auto ref ElementType a)
>   {
>     return mixin("a." ~ propName);
>   }
> }
>
> assert( "hello".unaryProp!"length" == 5 );
>

Problem is I need to check that "propName" is a valid property 
name at compile time

> i.e. checking this Regex expression
> `^[a-zA-Z_]*[a-zA-Z0-9_]*[a-zA-Z][a-zA-Z0-9_]*$`
>

Is there any way to check a regular expression at compile time?




More information about the Digitalmars-d-learn mailing list