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];