Home

Awesome

High performance C++11 signals

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).

Declare a signal

This example declares a signal 'sig' that takes three arguments and returns a char.

Simple::Signal<char (float, int, std::string)> sig;

Connect to a signal

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);
}

Fire a signal

void func() {
  // ...
  sig.emit(1.0f, 7, "xxxx");
}