| struct A |
| { |
| void foo(T)(T t) {} |
| void foo(long l) {} |
| |
| void bar(long l) {} |
| void bar(T)(T t) {} |
| } |
| |
| static assert(__traits(getOverloads, A, "foo").length == 1); |
| static assert(__traits(getOverloads, A.init, "foo").length == 1); |
| |
| static assert(__traits(getOverloads, A, "foo", true).length == 2); |
| static assert(__traits(getOverloads, A.init, "foo", true).length == 2); |
| |
| static assert(__traits(getOverloads, A, "bar").length == 1); |
| static assert(__traits(getOverloads, A.init, "bar").length == 1); |
| |
| static assert(__traits(getOverloads, A, "bar", true).length == 2); |
| static assert(__traits(getOverloads, A.init, "bar", true).length == 2); |