On Tuesday, 15 May 2012 at 17:18:57 UTC, Philippe Sigaud wrote:
Can you give us a simple example of what codeof produces? How does it
deal with functions overloads?

import std.stdio;

void bar() {
   writeln("testing");
}

struct Foo {
 public:
  int x;
  int y;
}

void main() {
   writeln("*************");
   writeln(__traits(codeof, bar));
   writeln("*************");
   writeln(__traits(codeof, Foo));
   writeln("*************");
}

This prints:
*************
void bar()
{
writeln("testing");
}

*************
struct Foo
{
    public
{
    int x;
    int y;
}
}

*************

I'm not sure how well this works with overloads. If you just use the symbol name, it works like other traits and returns the source code for the first match. I tried using the getOverloads trait and some alias magic, but all I've been able to do so far is get the prototype for overloads. I'm guessing it has something to do with using an alias instead of the actual symbol. I think we need a better way to reference an overloaded symbol.

Reply via email to