On 10/12/17 7:33 PM, Psychological Cleanup wrote:
Is there any way to get the function body of a function, delegate, and lambda? I'd also like to extend functions by "wrapping" them at compile time generically. For example, I'd like to get all the properties of a class and add some code to them(sort of like adding a scope, prolog, and/or epilog).

Is any of this possible in D?

Something like this may work:

struct S(T)
{
   private T obj;
   auto ref opDispatch(string item, Args...)(auto ref Args args) {
       prolog();
       scope(exit) epilog();
       mixin("return obj." ~ item ~ args.length == 0 ? ";" : "(args);");
   }
}

Probably needs some more machinery to work for everything.

-Steve

Reply via email to