Fundamentally, there is something between 300 to 400 bytes memory leak. Yes, it is not much with today's world of GB RAM. However, when you have production code that leaks, then ANY memory leak is unacceptable. Essentially, the leak is due to the lack of the eleven singleton instances NOT invoking the respective destructor. Plus, the group I am part of spends tens of hours tracking down why the production product has memory leaks. The final convincing point that must be clearly understood is this: due to the leak, Boost.Serialization has been replaced. If that does not convince a reader that there is a real problem, then nothing will. Thank you Robert. I have also added another PR that does something very similar to your manual test. It tests that singletons are actually destructed and that the is_destructed flag is set. Note that this is an extract from my bigger PR and just contains the tests to prove this
point and tests are failing obviously in both 1.66 and current dev (different parts though). Maybe we can get this one in first and then fix it with my other PR. Would you maybe add a vote/thumbs-up for the PRs also on Github to increase awareness? To add on this: It is not only a memory leak. The ctor is not called. If one relies on side effects by that, it can cause all sorts of havoc. Thanks, Alex