Skip to content

AdamFull/EasyDelegate

Repository files navigation

EasyDelegate library for c++17 and higher

forthebadge forthebadge

FOSSA Status GitHub Issues License

Problem


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.

Why is it necessary


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)


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.

License


MIT © AdamFull && range36rus.

About

delegates for c++

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors