__traits(getAttributes, ...) gets attributes for the first overload only
Adam D. Ruppe via Digitalmars-d
digitalmars-d at puremagic.com
Sat Dec 5 13:30:09 PST 2015
On Saturday, 5 December 2015 at 20:44:40 UTC, Andrei Alexandrescu
wrote:
> Working on the big-oh thing I noticed that for an overloaded
> function, __traits(getAttributes, ...) applied to overloaded
> functions only fetches attributes for the first syntactically
> present overload. Bug or feature?
Did you use it in a loop with __traits(getOverloads) too?
Borrowing from the doc example:
import std.stdio;
class D
{
this() { }
~this() { }
@("test") void foo() { }
@(12) int foo(int) { return 2; }
}
void main()
{
D d = new D();
foreach (t; __traits(getOverloads, D, "foo")) {
// the getAttributes here inside the getOverloads
// loop will cause it to get specific
writeln(__traits(getAttributes, t));
writeln(typeid(typeof(t)));
}
}
More information about the Digitalmars-d
mailing list