how failed constructor roll over to destroy the completed objects?
<p>I know that when a constructor fails, the completed member objects will be destroyed. There is no memory leak.</p>

<p>My question is that how does compiler do that? How can compiler know what member is constructed? Does it make any record of it? Does the compiler really destroy everything in this case? How does it guarantee this?</p>
