1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
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);
|