int main() { EventDispatcher dispatcher; int my_var = 0; dispatcher.addHandler("event1", [&my_var](EventDispatcher& ev) -> bool { cout << "My event1 has been launched (first handler)" << endl; my_var++; return true; }); dispatcher.addHandler("event1", [&my_var](EventDispatcher& ev) -> bool { cout << "My event1 has been launched (second handler)" << endl; my_var++; cout << "Trigger event2..." << endl; ev.dispatchEvent("event2"); return false; }); dispatcher.addHandler("event2", [&my_var](EventDispatcher& ev) -> bool { cout << "My event2 has been launched!" << endl; my_var++; return true; }); cout << "Triggering event..." << endl; dispatcher.dispatchEvent("event1"); cout << "My var is: " << my_var << endl; return 0; }