The standard language library provides a mechanism for storing functional objects in std::function<> and binding by the std tool::bind migrated from boost. This mechanism has some disadvantages, especially with passing std:: placeholder as parameters of std:: bind.
This library makes working with delegates much easier. It allows you to create functional objects in the same way as std::function, but changes the mechanism for binding a function to a functional object. The delegate is based on std::function, it performs all the main work. EasyDelegate is an abstraction over std::function and implements a different function binding mechanism.
Features (more information on the wiki)
TDelegate (class implementation)
Implementation of a delegate based on std::function. At the moment, the entire basic algorithm of work is implemented. A "scheduled call" will be added soon.The class allows you to perform simple binding with both class methods and static functions.
TDelegateMulti (class implementation)
Allows you to create a delegate store with the same signature. Based on std:: map. Requires creating an object. Read more in the wiki.
TDelegateAnyCT (class implementation)
A global container for creating delegates at the compilation stage. It can be used for a simple event system. At the moment, it cannot be used together with TDelegateAny and vice versa.
TDelegateAny (class implementation)
A container for creating delegates at the program execution stage. Allows you to add delegates with any signature, and make their further call. At the moment, it cannot be used together with TDelegateAnyCT and vice versa.
MIT © AdamFull && range36rus.