how to get enclosing function as symbol ? (eg: __function__.stringof ==__FUNCTION__)
Kapps
opantm2+spam at gmail.com
Sat Aug 17 20:08:41 PDT 2013
On Sunday, 18 August 2013 at 01:52:50 UTC, Timothee Cour wrote:
> Is there any way to get the enclosing function as symbol ?
>
> I'd like something like that:
> alternative names would be:
> __function__
> __context__
>
> ----
> auto fun(alias caller=__function__)(){
> //caller represents fun1!double
> return ReturnType!caller.init;
> }
>
> T fun1(T)(T x){
> assert(__function__.stringof==__FUNCTION__);
> alias fun=__function__;
> assert( is(ReturnType! __function__) == T);
> return fun();
> }
> void main(){fun1!double();}
> ----
I don't think you can pass it in to the function, but you can use
__traits(parent) on a variable within the function to get the
function.
More information about the Digitalmars-d-learn
mailing list