
Hopefully this is not another simple oversight on my part but I have code like below and the disconnect wrapper does not work. Thanks. typedef boost::signals2::signal<void ()> VoidSignal; typedef VoidSignal::slot_type VoidSlot; class x{ public: void somefuncA() { cerr << "Bada bing" << endl; } void somefuncB() { cerr << "Bada boom " << endl; } }; void disconnect(VoidSlot const& rF, VoidSignal& rSig) { rSig.disconnect(rF); //won't compile //rSig.disconnect(&rF); //compiles but doesn't disconnect } int main() { x myX; VoidSignal sig; sig.connect(VoidSlot(&x::somefuncB, &myX)); disconnect(VoidSlot(&x::somefuncB, &myX, sig); //doesn't work/compile as expected disconnect(boost::bind(&x::somefuncB, &myX, sig); //doesn't work/compile either sig(); // will still invoke somefuncB return 0; }