www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Get name of current function

reply Mike B Johnson <Mikey Ikes.com> writes:
I'd like to get the symbolic name of the current function I'm in

void foo()
{
     writeln(thisFunc.stringof()); // prints foo
}

I need something short, elegant and doesn't require modifying 
preexisting code... I'm sure D has something along those lines?
Apr 23
next sibling parent Mike Wey <mike-wey example.com> writes:
On 04/23/2017 10:34 PM, Mike B Johnson wrote:
 I'd like to get the symbolic name of the current function I'm in
 
 void foo()
 {
      writeln(thisFunc.stringof()); // prints foo
 }
 
 I need something short, elegant and doesn't require modifying 
 preexisting code... I'm sure D has something along those lines?
The __FUNCTION__ keyword would give you the fully qualified name of the function. http://dlang.org/spec/traits.html#specialkeywords -- Mike Wey
Apr 23
prev sibling next sibling parent cym13 <cpicard openmailbox.org> writes:
On Sunday, 23 April 2017 at 20:34:12 UTC, Mike B Johnson wrote:
 I'd like to get the symbolic name of the current function I'm in

 void foo()
 {
     writeln(thisFunc.stringof()); // prints foo
 }

 I need something short, elegant and doesn't require modifying 
 preexisting code... I'm sure D has something along those lines?
So something like __FUNCTION__ or __PRETTY_FUNCTION__ ? https://dlang.org/spec/traits.html#specialkeywords
Apr 23
prev sibling parent Stanislav Blinov <stanislav.blinov gmail.com> writes:
On Sunday, 23 April 2017 at 20:34:12 UTC, Mike B Johnson wrote:
 I'd like to get the symbolic name of the current function I'm in

 void foo()
 {
     writeln(thisFunc.stringof()); // prints foo
 }

 I need something short, elegant and doesn't require modifying 
 preexisting code... I'm sure D has something along those lines?
__FUNCTION__ and __PRETTY_FUNCTION__ both will give qualified name though (e.g. module.foo), so, if necessary, that has to be stripped out manually.
Apr 23