Simplifying a string mixin
Simen Kjærås
simen.kjaras at gmail.com
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
use:
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!"!");
}
--
Simen
More information about the Digitalmars-d-learn
mailing list