• Stars
    star
    159
  • Rank 227,619 (Top 5 %)
  • Language
    C++
  • Created over 10 years ago
  • Updated almost 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

High performance C++11 signals

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