Retrieve the return type of the current function
    Meta 
    jared771 at gmail.com
       
    Tue May  5 18:23:54 UTC 2020
    
    
  
On Tuesday, 5 May 2020 at 18:19:00 UTC, Meta wrote:
> mixin template magic()
> {
>     alias CallerRet = typeof(return);
>     CallerRet magic()
>     {
>         return CallerRet.init;
>     }
> }
Small edit: you can remove the "CallerRet" alias by doing the 
following:
mixin template magic()
{
     typeof(return) magic()
     {
         return typeof(return).init;
     }
}
Though I wouldn't really recommend it as it's very confusing, 
IMO. This works because "typeof(return)" in the return position 
here refers to the caller's scope, while "typeof(return)" inside 
the function refer's to the function's scope.
    
    
More information about the Digitalmars-d-learn
mailing list