From: Bob Duff <bobduff@theworld.com>
Subject: Re: Why is the destructor called multiple times after I declare an object?
Date: Mon, 11 Jan 2016 13:17:20 -0500
Date: 2016-01-11T13:17:20-05:00 [thread overview]
Message-ID: <871t9ogevj.fsf@theworld.com> (raw)
In-Reply-To: n70l9o$ecn$3@dont-email.me
Brian Drummond <brian@shapes.demon.co.uk> writes:
> Somehow I expected "extended return" to allocate space and "build in
> place" during the execution of the return statement.
Build-in-place is done for return of immutably-limited types,
whether or not the extended return syntax is used.
For nonlimited types, the compiler is free to use build-in-place if it
can prove that it's equivalent to return-by-copy. It's often not
equivalent. For example:
X := Init;
What if Init raises an exception after partly modifying the result?
In that case X should not be modified, so the result object of Init
and X had better not be at the same address.
- Bob
next prev parent reply other threads:[~2016-01-11 18:17 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-11 1:37 Why is the destructor called multiple times after I declare an object? Andrew Shvets
2016-01-11 2:18 ` Jeffrey R. Carter
2016-01-11 3:35 ` Andrew Shvets
2016-01-11 17:02 ` Brian Drummond
2016-01-11 16:29 ` Brian Drummond
2016-01-11 17:20 ` Simon Wright
2016-01-11 18:17 ` Bob Duff [this message]
2016-01-11 21:10 ` Dmitry A. Kazakov
2016-01-11 23:44 ` Randy Brukardt
2016-01-12 9:33 ` Dmitry A. Kazakov
2016-01-12 20:21 ` Randy Brukardt
2016-01-12 21:05 ` Dmitry A. Kazakov
2016-01-13 0:02 ` Robert A Duff
2016-01-13 8:31 ` Dmitry A. Kazakov
2016-01-13 9:01 ` Georg Bauhaus
2016-01-13 14:45 ` J-P. Rosen
2016-01-13 20:09 ` Dmitry A. Kazakov
2016-01-14 9:04 ` J-P. Rosen
2016-01-14 9:47 ` Dmitry A. Kazakov
2016-01-13 16:03 ` Robert A Duff
2016-01-13 19:59 ` Dmitry A. Kazakov
2016-01-14 10:04 ` Georg Bauhaus
2016-01-14 13:42 ` Dmitry A. Kazakov
2016-01-12 12:41 ` Brian Drummond
2016-01-13 20:18 ` Jacob Sparre Andersen
2016-01-14 1:31 ` Robert A Duff
2016-01-12 0:43 ` Jeffrey R. Carter
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox