#include #include using namespace std; typedef boost::signal1 ChangeSignal; typedef ChangeSignal::slot_function_type ChangeCallBack; void run(int x) { cerr << x << endl; } struct Bar { void go(int i) { _change(i); } void init() { ChangeCallBack f = &run; _change.connect(f); } ChangeSignal _change; }; int main() { Bar b; b.init(); b.go(10); // Should output 10 return 0; }