dexonsmith added a comment. In D61165#1492724 <https://reviews.llvm.org/D61165#1492724>, @rjmccall wrote:
> In D61165#1492582 <https://reviews.llvm.org/D61165#1492582>, @erik.pilkington > wrote: > > > Duncan pointed out eel.is/c++draft/class.init#class.base.init-13, which > > appears to claim that initialization ends with the execution of the > > constructor, excluding temporary destructors. > > > > > (13) In a non-delegating constructor, initialization proceeds in the > > > following order: > > > /* list of steps... */ > > > (13.4) **Finally, the compound-statement of the constructor body is > > > executed.** > > > > John: do you agree with this analysis? > > > That's talking about constructor bodies. Sure, but that's all that dcl.int suggests happens during initialization. Skipping over paragraphs that don't apply: > http://eel.is/c++draft/dcl.init#17: The semantics of initializers are as > follows. > > - http://eel.is/c++draft/dcl.init#17.6: [I]f the destination type is a > (possibly cv-qualified) class type: > - http://eel.is/c++draft/dcl.init#17.6.2: [I]f the initialization is > direct-initialization, or if it is copy-initialization where the > cv-unqualified version of the source type is the same class as, or a derived > class of, the class of the destination, constructors are considered. The > applicable constructors are enumerated ([over.match.ctor]), and the best one > is chosen through overload resolution ([over.match]). **Then:** > - http://eel.is/c++draft/dcl.init#17.6.2.1: If overload resolution is > successful, **the selected constructor is called to initialize the object**, > with the initializer expression or expression-list as its argument(s). Which I read as saying, "the selected constructor is the thing that initializes the object". But, IIUC, you're saying the object isn't necessarily initialized when the selected constructor returns. I can't find any text that would support your interpretation. Let me argue from the other direction as well: > http://eel.is/c++draft/dcl.init#21: An object whose initialization has > completed is deemed to be constructed, [...] IIUC, you're suggesting that there could be a "constructed, but not yet initialized" state, but the definition of "constructed" seems to refute that. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D61165/new/ https://reviews.llvm.org/D61165 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits