Cinder’s signal class is based on a version of Tim Janik’s SimpleSignal library. For a comparison and motivation, see this article. Note that his library is roughly 4 years old and things may have changed since. The
std::signals library did not exist yet (edit: turns out it doesn’t exist at all, see comments below) and I’m not sure if it is based on
boost::signals2 or not. You may want to do some profiling yourself.
However, know that Cinder’s class has been researched and well thought out and offers great performance and flexibility. The only drawback I can think of is that you can’t control the order in which a signal is processed (you can’t sort the listeners). You can assign a priority, but it is not efficient to have a unique priority for each listener.
Edit: I should add that Cinder’s signals are not thread safe. If you’re planning on using multiple threads, you might want to use