Note: I\'ve seen similar questions, but none of the answers are precise enough, so I\'m asking this myself.
I have not read everyone else's input, but I have a simple explanation. In the quote
however, if there is no explicit call to the destructor or if a delete-expression is not used to release the storage, the destructor shall not be implicitly called and any program that depends on the side effects produced by the destructor has undefined behavior.
The meaning is very different depending on how you parse it. This meaning is what I hear people talking about.
however, { if there is no explicit call to the destructor or if a delete-expression is not used to release the storage }, the destructor shall not be implicitly called and any program that depends on the side effects produced by the destructor has undefined behavior.
But I think this meaning makes more sense
however, if there is no explicit call to the destructor or { if a delete-expression is not used to release the storage, the destructor shall not be implicitly called and any program that depends on the side effects produced by the destructor has undefined behavior } .
which basically says C++ does not have a garbage collector and if you assume it does have GC your program will not work as you expect.