#include #include #include class MyHandler { public: MyHandler() { std::cout << "MyHandler::MyHandler(" << (void*)this << "): default constructor" << std::endl; } MyHandler(const MyHandler &other) { std::cout << "MyHandler::MyHandler(" << (void*)this << ", " << (void*)&other << "): copy constructor" << std::endl; } ~MyHandler() { std::cout << "MyHandler::~MyHandler(" << (void*)this << ")" << std::endl; } MyHandler &operator=(const MyHandler &other) { std::cout << "MyHandler::operator=(" << (void*)this << ", " << (void*)&other << ")" << std::endl; return *this; } int operator()(int i) { std::cout << "MyHandler::operator()(" << (void*)this << ", " << i << ")" << std::endl; return ++i; } }; int main(int argc, char *argv[]) { std::cout << "" << std::endl; boost::signal *sig1 = new boost::signal; boost::signals::connection con; MyHandler mh; std::cout << "" << std::endl; con = sig1->connect(mh); std::cout << "" << std::endl; std::cout << "" << std::endl; sig1->operator()(666); std::cout << "" << std::endl; std::cout << "" << std::endl; con.disconnect(); std::cout << "" << std::endl; std::cout << "" << std::endl; return 0; }