#include #include #include void hello (void) { std::cout << "Hello, World" << std::endl; } class Foo { public: Foo (int x) : m_x(x) { } void print_sum (int x, int y) { std::cout << "Sum: " << x+y+m_x << std::endl; } void print_product (int x, int y) { std::cout << "Product: " << x*y*m_x << std::endl; } private: int m_x; }; int main(void) { boost::signal sig; sig.connect(&hello); sig(); Foo foo(2); boost::signal sig2; sig2.connect (boost::bind(&Foo::print_sum, foo, _1, _2)); sig2.connect (boost::bind(&Foo::print_product, foo, _1, _2)); sig2(2,3); sig2(2,2); return 0; }