www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Shouldn't __FUNCTION__ return function name?

reply "Andrea Fontana" <nospam example.com> writes:
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?
How can I get the function name?
Jul 28 2015
parent reply Steven Schveighoffer <schveiguy yahoo.com> writes:
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
Jul 28 2015
parent "Andrea Fontana" <nospam example.com> writes:
On Tuesday, 28 July 2015 at 15:13:28 UTC, Steven Schveighoffer 
wrote:
 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
Too bad :|
Jul 28 2015