\o/ Bonjour tout le monde \o/ :)
Ce code source traite de la gestion (quasi inexistante) des évènements en C++ pure.
Je n'ai jamais trouvé de façon de gérer des évènements (ou "callbacks" comme certains les appellent)
proprement et sans prise de tête
J'ai donc voulu faire une gestion des évènements basée sur des MACROs.
Cette gestion s'inspire de ce que j'ai pu voir :
Qt
C#
Borland c++ (__closure)
java.
Toute critique constructive, bonne ou mauvaise, est bienvenue.
Voici donc un code commenté (le contenu du fichier example.cpp dans le zip), très basique, qui utilise mon magic header de gestion des évènements :
Sujet :
On veut contrôler les changements de valeur d'une classe Integer qui encapsule un entier.
La classe Integer va donc déclarer un évènement OnCanChange qui prendra en argument :
--> la valeur courante de l'entier encapsulé
--> la nouvelle valeur à affecter l'entier encapsulé
--> un booleen indiquant si le changement doit être fait.
Une autre classe (KeepEven) va donc donc contrôler les changements de l'entier
en s'abonnant à l'évènement de l'instance d'Integer.
Cette classe va simplement garder les changements qui conduise l'entier à devenir ou rester pair.