Enum member isSame
Returns true if a and b are the same thing, or false if not. Both a and b can be types, literals, or symbols.
enum isSame(ab...)
= is(ab[0] == ab[1]);
is(a == b)
a == b
__traits(isSame, a, b)
Example
static assert( isSame!(int, int));
static assert(!isSame!(int, short));
enum a = 1, b = 1, c = 2, s = "a", t = "a";
static assert( isSame!(1, 1));
static assert( isSame!(a, 1));
static assert( isSame!(a, b));
static assert(!isSame!(b, c));
static assert( isSame!("a", "a"));
static assert( isSame!(s, "a"));
static assert( isSame!(s, t));
static assert(!isSame!(s, "g"));
static assert(!isSame!(1, "1"));
static assert(!isSame!(a, "a"));
static assert( isSame!(isSame, isSame));
static assert(!isSame!(isSame, a));
static assert(!isSame!(byte, a));
static assert(!isSame!(short, isSame));
static assert(!isSame!(a, int));
static assert(!isSame!(long, isSame));
static immutable X = 1, Y = 1, Z = 2;
static assert( isSame!(X, X));
static assert(!isSame!(X, Y));
static assert(!isSame!(Y, Z));
int foo();
int bar();
real baz(int);
static assert( isSame!(foo, foo));
static assert(!isSame!(foo, bar));
static assert(!isSame!(bar, baz));
static assert( isSame!(baz, baz));
static assert(!isSame!(foo, 0));
int x, y;
real z;
static assert( isSame!(x, x));
static assert(!isSame!(x, y));
static assert(!isSame!(y, z));
static assert( isSame!(z, z));
static assert(!isSame!(x, 0));