Steve

One small thing. As you said I might declare a delegate in an alternate fashion that is by saying "void delegate() dg;".

But would it be possible to rewrite the following declaration in a way that avoids naming foo explicitly. I would just have an alias for foo. I am asking this to cover the cases where foo might have a list of arguments and I want to create a delegate with the same list of arguments.

typeof(&F.init.foo) dg;

Regards
- Puneet