Re: Getting usages of template

2016-11-17 Thread lobo via Digitalmars-d-learn
On Thursday, 17 November 2016 at 09:40:45 UTC, Carlin St Pierre 
wrote:
Is it possible to get the list of usages of a template during 
compile time?


For example:

class Foo
{
void bar(T)(T t)
{

}
}

void main()
{
Foo foo = new Foo;
foo.bar(1); // int
foo.bar(2f); // float
foo.bar("3"); // string
}

// pragma(msg, TemplateThatGetsTemplateUsages!(Foo.bar)) would 
print:

// (int, float, string)


Does this do what you want?

class Foo {
  void bar(T)(T t) {
pragma(msg, __FUNCTION__);
  }
}



Re: Getting usages of template

2016-11-17 Thread Stefan Koch via Digitalmars-d-learn
On Thursday, 17 November 2016 at 09:40:45 UTC, Carlin St Pierre 
wrote:
Is it possible to get the list of usages of a template during 
compile time?


For example:

class Foo
{
void bar(T)(T t)
{

}
}

void main()
{
Foo foo = new Foo;
foo.bar(1); // int
foo.bar(2f); // float
foo.bar("3"); // string
}

// pragma(msg, TemplateThatGetsTemplateUsages!(Foo.bar)) would 
print:

// (int, float, string)


Not without hacking the compiler.