See Performance of a C++11 Signal System for the original source code, as well as performance measurements compared to other signalling systems.
The original author, Tim Janik, licensed the source code to the public domain CC0 1.0 Universal (CC0 1.0).
This example declares a signal 'sig' that takes three arguments and returns a char.
Simple::Signal<char (float, int, std::string)> sig;
This example connects 'sig' to a static function. It is also possible to connect to member functions or lambda functions.
static char float_callback (float f, int, std::string) {
// ...
return 0;
}
void Init() {
sig.connect(float_callback);
}
void func() {
// ...
sig.emit(1.0f, 7, "xxxx");
}