Thread overview | ||||||
---|---|---|---|---|---|---|
|
April 23, 2017 Get name of current function | ||||
---|---|---|---|---|
| ||||
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 Re: Get name of current function | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike B Johnson | 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 Re: Get name of current function | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike B Johnson | 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 Re: Get name of current function | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike B Johnson | 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.
|
Copyright © 1999-2021 by the D Language Foundation