Header only c++ signal slot mechanism implemantation