Initial post in this thread makes focus on a change that does not fix anything and implies silent semantical breakage. I am glad Andrei has reconsidered it but feels like key problem is not that proposal itself was bad but that it does not even try to solve.

Real issue being deterministic destruction and/or deallocation of polymorphic objects. Class destructors are bad for that indeed. But I want some better replacement before prohibiting anything.

There is a very practical use case that highlights existing problem, it was discussed few months ago in exception performance thread. To speed up throwing of non-const exceptions it is desirable to use pool of exception objects. However currently there is no place where to put code for releasing object back into pool. One cannot use destructor because it will never be called if pool keeps the reference. One cannot use reference counting struct wrapper because breaks polymorphic catching of exceptions.

Any good solution to be proposed should be capable of solving this problem.

Reply via email to