I have a simple comparison function: struct Foo { string bar; }
auto sameGroup(T,S) (T a, S b) { static assert (is(T == string) || is(T == Foo)); static assert (is(S == string) || is(S == Foo)); string aStr; string bStr; static if (is(T == string)){ aStr = a; } else { aStr = a.bar; } static if (is(S == string)){ bStr = b; } else { bStr = b.bar; } return equal (aStr,bStr); } This works, but just wondered if there was an easier way? Is there a way to do "static if" in shorthand, like: auto aStr = (static if (is(T==string)) ? a : a.bar