Enum member isLiteralOf
Checks if an alias is a literal of some type
enum isLiteralOf(ab...)
= !is(typeof(&ab[0])) && is(typeof(ab[0])) && is(typeof(ab[0]) == ab[1]);
Example
static assert( isLiteralOf!("hi", string));
static assert(!isLiteralOf!(3, string));
static assert( isLiteralOf!(3, int));
int a;
static assert(!isLiteralOf!(a, int));
void f() {}
static assert(!isLiteralOf!(f, string));
}
/**
Checks if an alias is a literal
*/
enum isLiteral(T...) = __traits(compiles, { enum x = T[0];