To extend delegates, you should implement a policy struct like this and pass it as the second template argument to TDelegate and TMulticastDelegate. This policy struct containing three classes called: