<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Jan 17, 2014, at 8:42 PM, Gabriel Dos Reis &lt;<a href="mailto:gdr@microsoft.com">gdr@microsoft.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div lang="EN-US" link="blue" vlink="purple" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class="WordSection1" style="page: WordSection1;"><div style="margin: 0in 0in 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;"><span style="font-family: 'Calisto MT', serif; color: rgb(112, 48, 160);">In C++, there is a relationship between the lifetime of a complete object and that of its subobjects – the only exception I know of is that of arrays, which has it th opposite way (wrong!) and is on my list of things to get fixed (already reported that in the past.)&nbsp; I don’t understand the bit about new-expression.</span></div></div></div></blockquote><div><br></div><div>It sounds like both cases are covered by §3.8/2:</div><div>
                
        
        
                <div class="page" title="Page 80">
                        <div class="layoutArea">
                                <div class="column">
                                        <ol style="list-style-type: none">
                                                <li><p><span style="font-size: 10.000000pt; font-family: 'LMRoman10'">[ </span><span style="font-size: 10.000000pt; font-family: 'LMRoman10'; font-style: italic">Note: </span><span style="font-size: 10.000000pt; font-family: 'LMRoman10'">The lifetime of an array object starts as soon as storage with proper size and alignment is obtained,
and its lifetime ends when the storage which the array occupies is reused or released. </span><span style="font-size: 10.000000pt; font-family: 'LMRoman10'; color: rgb(0.000000%, 0.000000%, 100.000000%)">12.6.2 </span><span style="font-size: 10.000000pt; font-family: 'LMRoman10'">describes the
lifetime of base and member subobjects. </span><span style="font-size: 10.000000pt; font-family: 'LMRoman10'; font-style: italic">— end note </span><span style="font-size: 10.000000pt; font-family: 'LMRoman10'">]</span></p></li></ol></div></div></div></div><div>As for arrays, yes that sounds backwards. If the lifetime of the whole array starts before initialization finishes, that might imply something crazy like the ability to destroy all of it in the middle of initialization. (I don’t know what normative text makes the note correct, though.)</div><div><br></div><div>As for objects of class types, [class.base.init] 12.6.2 only seems to mention initialization, not lifetimes in the abstract sense, but I was only talking about objects with trivial initialization, for which initialization plays no part in determining lifetime.</div><div><br></div><div>Am I missing something else?</div><div><br></div></div></body></html>