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

Reply via email to