struct S1(T...) {
    auto fun() {
        static assert(__traits(compiles, &T[0]));
    }
}
struct S2 {
    void gun() {}
    S1!gun overloaded;
}
struct S1(T...) {
    auto fun() {
        static assert(__traits(compiles, &T[0]));
    }
}
struct S2 {
    void gun() {}
    S1!gun overloaded;
}