Shouldn't __FUNCTION__ return function name?

Steven Schveighoffer via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Jul 28 08:13:28 PDT 2015


On 7/28/15 11:05 AM, Andrea Fontana wrote:
> Check this code:
> http://dpaste.dzfl.pl/a76db2cde13d
>
> When __FUNCTION__ is called inside a foreach body, it appears to be:
> f212.myFunction.__foreachbody1
>
> Rather than:
> f212.myFunction.
>
> Is it correct?

Yes.

> How can I get the function name?

Be outside foreach. The way foreach works in many cases (including 
foreach over an associative array), is that the compiler constructs an 
internal function delegate, then passes it to a handler. See opApply and 
how it works. It's the same for AAs.

http://dlang.org/statement.html#ForeachStatement

-Steve


More information about the Digitalmars-d-learn mailing list