в Boost есть реализация подобного
интересна тем, что:
также является шаблонным классом
слот может реагировать на несколько сигналов
сигнал вызывает объект с перегруженным оператором (), т.е. не обязателен отдельный объект типа слот...
можно передавать не только объект-слот, но и просто указатель на функцию и работать будет стем же успехом...
так что, конечно неплохо, но та реализация, IMHO, лучше...