Signals and Slots  Signals and Slots


This page is a Fossil source code repository for several different signals/slots implementations for C++. It is mainly an experiment to try out the Fossil source control system. Fossil is still quite young and has a couple bugs and missing features, so don't expect everything on this site to work.

This tree contains several different packages, each arranged in their own subdirectory:

  • stsigslot-classic = an up-to-date/maintained copy of Sarah Thompson's signals and slots library (
  • stsigslot = a refactored copy of stsigslot-classic to remove the numeric suffixes from the classes (but otherwise the same code/architecture). Not nearly as well-tested as the older code and probably not as portable to strange platforms.
  • ptsigslot = A more modern implementation by Dr. Marc Duerner. For full details see

Each one is fairly small and has its own list of pros and cons. They are fairly portable (especially ptsigslot) and "should" work on any recent C++ platform.

Downloading this code

There are two options for downloading. The first is to log in as the anonymous use and follow the /leaves link. Then find the top-most entry and click that. From there, you can download a zip file containing the latest checked-in source code. Versions of Fossil older than 8 February 2008 will create a zip which unpacks to the current directory, so be sure to first create and 'cd' to the proper target directory before unzipping.

Optionally, you can use fossil:

~> fossil clone \ \

(All on one line.)

That will copy the repository to sigslot.fsl, which you can then open with:

~> mkdir sigslot
~> cd sigslot
~> fossil open ../sigslot.fsl

That checks out the files under the current dir. Each sub-project is in its own subdir, typically with a Makefile written for systems running GNU Make and gcc.


If you are interesting in contributing to this code, there are several options:

  • Send me a patch or code snippet (need not be in "patch" format if it's easy enough to handle).
  • Get in touch with me and we can get you set up with write access to this repo (requires the Fossil tool).
  • Just send me an idea of what it is you'd like to see changed/fixed/added. Oftentimes a simple suggestion is a great catalyst for a feature.