Having problems with boost::signal and boost::function