Ensuring release of connections appears to be idiosyncratic per the info here this is for signals but the issue remains in signals2 In your case, the modified version below does what you want, I think: include #include #include using namespace std; using namespace boost; class Foo { public: Foo() { cout Signal; int main() { Signal signal; { scoped_ptr foo(new Foo); signals2::scoped_connection c = signal. Connect(boost::bind(&Foo::bar, foo.get())); cout Disconnect_all_slots(); cout C 1 D 0 Foo is deleted. E 0.
Ensuring release of connections appears to be idiosyncratic per the info here - this is for signals, but the issue remains in signals2. In your case, the modified version below does what you want, I think: #include #include #include using namespace std; using namespace boost; class Foo { public: Foo() { cout Signal; int main() { Signal signal; { scoped_ptr foo(new Foo); signals2::scoped_connection c = signal. Connect(boost::bind(&Foo::bar, foo.get())); cout Num_slots() Num_slots().
I'm sorry, the example I provide here is a simplified version. I use it in a boost::asion server. Sconped_connect can't work.
– Victor Lin Nov 7 '10 at 1:55.
I found some objects in my C++ program can't be released due to the Signal2 of boost won't release those arguments in object created by boost::bind. I thought the signal. Disconnect_all_slots would delete all connections.
But actually, it didn't. I just read the source code of signals2, it seems that the signal. Disconnect only set a flag "disconnect" in those connection, it never delete those object.
Why the signal won't delete those disconnected connections? Isn't it a very strange behavior? What is the reason of keep those connections rather than delete them?
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.