On Wednesday, 16 October 2013 at 13:38:44 UTC, Dicebot wrote:
On Wednesday, 16 October 2013 at 13:24:59 UTC, Max Samukha wrote:
@(1)
template Foo(T : int) {}

@(2)
template Foo(T : short) {}

__traits(getAttributes, Foo) == ?

The current semantics seems quite reasonable.

@(1)
void foo(int) {}

@(2)
void foo(double) {}

pragma(msg, __traits(getAttributes, foo));

void main() {}

// Compilation output:
//
// tuple(1)

That sucks. Then, getAttributes (and other traits dealing with overload sets) should return an empty set, a union or accept a pattern to match against the members of the overload set.

Reply via email to