Originally Posted by The C++ Programming Language 3rd Edition, 10.4.5
Some C++ implementations automatically recycle the storage occupied by unreachable objects (garbage collecting implementations), but their behavior is not standardized. [...] In particular, where a garbage collector is known to exist, destructors that do memory management only can be eliminated. This simplification comes at the cost of portability and for some programs, a possible increase in run time and loss of predictability of run-time behavior.