xxxxxxxxxx
bool id(T, U)(T t, U u)
{
return t is u;
}
enum canCompare(T, U) = __traits(compiles, id!(T, U)) ? "yes" : "no";
class A {}
class B {}
void main()
{
import std.meta;
alias Types = AliasSeq!(void *, ubyte *, int *, float *, Object, A, B);
static foreach(i, T; Types[0 .. $-1])
static foreach(U; Types[i+1 .. $])
pragma(msg, T.stringof ~ " is " ~ U.stringof ~ ": " ~ canCompare!(T, U));
}