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