http://forum.dlang.org/post/llwrbirvlqxawifyytqq@forum.dlang.org
struct S { int x, y; } static void f()(auto ref const S s) { static assert(__traits(isRef, s)); } static void g()(auto ref const S s) { static assert(!__traits(isRef, s)); } S s; static assert(!__traits(isRef, s)); f(s); g(S.init);
Is true iff T is a GNU MP arithmetic type (long, ulong or double).