Thread overview
Get name of current function
Apr 23, 2017
Mike B Johnson
Apr 23, 2017
Mike Wey
Apr 23, 2017
cym13
Apr 23, 2017
Stanislav Blinov
April 23, 2017
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?
April 23, 2017
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
April 23, 2017
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
April 23, 2017
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.