Simple implementation of __FUNCTION

Timon Gehr timon.gehr at gmx.ch
Fri Nov 2 15:08:02 PDT 2012


On 11/02/2012 10:34 PM, Philippe Sigaud wrote:
> By changing this to a standard function:
>
> const(char[]) __FUNCTION() @property
> {
>     return "__traits(identifier, __traits(parent, {}))";
> }
>
>
> ... the calling syntax is slightly easier on the eye:
>
> void main()
> {
>      writefln( "File: %s, Func: %s, Line: %d", __FILE__,
> mixin(__FUNCTION), __LINE__ );
>
>      //throw new Exception( "Error: Function " ~ mixin(__FUNCTION) );
> }
>
> That is, mixin(__FUNCTION) instead of mixin(__FUNCTION!())
>
>
> Is there any downside to this?
>

I'd make it

enum currentFunction = q{ __traits(identifier, __traits(parent, {})) };


More information about the Digitalmars-d mailing list