They use templates like Signal0&lt;&gt;, Signal1&lt;T1&gt;, Signal2&lt;T1,T2&gt;, etc. with fixed argument length instead of a more uniform solution like variadic templates.<p>The code in the library is pretty old and I suppose that an update with regards to C++11&#x2F;14&#x2F;17 would make it much better in every regard.