.stringof might call function?

simendsjo simendsjo at gmail.com
Sat Mar 16 06:10:05 PDT 2013


On Saturday, 16 March 2013 at 13:01:44 UTC, simendsjo wrote:
> Why is the function called in the template at the line of 
> .stringof?
>
> template t(alias fn) {
>     static if(fn.stringof) // f(int i) isn't callable using ()
>         enum t = true;
>     else
>         enum t = false;
> }
>
> void main() {
>     void f(int i) {}
>     t!f;
> }

Seems pragma(msg, fn) also has the same behavior.
Guess this is because all functions can be called using property 
syntax. It really hurts my generic code though..


More information about the Digitalmars-d-learn mailing list