On Tuesday, 30 July 2013 at 06:45:31 UTC, JS wrote:
void f()
{
pragma(msg, __FUNCTION__);
}
template t()
{
pragma(msg, __FUNCTION__);
}
void main(string[] argv)
{
readln();
}
the function displays main.f. The template displays nothing.
I'd prefer it to display main.t! or something unique so I can
use it as a hash.
1) Pragma's are printed upon instantiation. You need to use
something like alias _ = t!(); to force it.
2) You may workaround it by wrapping pragma in stub function.
Though I do agree that something like __ENCLOSING__ may be useful
(assuming it also covers aggregates)