From: Brian Drummond <brian_drummond@btconnect.com>
Subject: Re: memory management in Ada: tedious without GC?
Date: Mon, 19 May 2008 15:40:45 +0100
Date: 2008-05-19T15:40:45+01:00 [thread overview]
Message-ID: <j1333450hdg19kpcmglqg0e7l45v3altb5@4ax.com> (raw)
In-Reply-To: m2od74ghnk.fsf@mac.com
On Sun, 18 May 2008 09:06:55 +0100, Simon Wright
<simon.j.wright@mac.com> wrote:
>Brian Drummond <brian_drummond@btconnect.com> writes:
>
>> Which explained to me how changing from ptr to auto_ptr (presumably
>> to make code safer!) can introduce a spectacularly silly bug,
>> completely statically determinable, but which the compiler allows
>> just fine and lets the code die with a segfault.
>
>Is auto_ptr the one where assignment moves the content? "b = a;" means
>that a is now null and b references the previous content of a?
>
>If so, it seems to me that it's the concept that's spectacularly
>silly! (I considered introducing an auto pointer into the Booch
>Components, but then thought about using it .. I can see that there
>might be a use within a very narrow scope, but a standard ref-counted
>smart pointer works just as well. No doubt there is an appropriate
>usage idiom?)
That's the one. It's maybe not spectacularly silly; I can see how it
would help in other circumstances, but not here.
Maciek is probably right that one or more of scoped_ptr, unique_ptr or
shared_ptr would be a better choice, but that is where I want to part
company with C++[+STL] - that looks like four new mechanisms to increase
complexity, without eliminating the basic problems of ptr.
I would prefer to catch problems at (or even before) the compiler,
rather than as here, let them manifest at runtime. So, having assigned
b=a, at the very least, any further references to 'a' in the same block
ought to be grounds for compilation failure. But apparently not, at
least in this compiler (gcc).
- Brian
next prev parent reply other threads:[~2008-05-19 14:40 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-16 17:44 memory management in Ada: tedious without GC? jhc0033
2008-05-16 18:56 ` Ludovic Brenta
2008-05-16 20:42 ` Maciej Sobczak
2008-05-16 21:45 ` Ivan Levashew
2008-05-16 22:59 ` Peter C. Chapin
2008-05-17 5:24 ` jhc0033
2008-05-17 7:50 ` Ivan Levashew
2008-05-16 23:05 ` Randy Brukardt
2008-05-19 3:50 ` Matthew Heaney
2008-05-19 7:55 ` Dmitry A. Kazakov
2008-05-19 13:18 ` Georg Bauhaus
2008-05-19 14:16 ` Dmitry A. Kazakov
2008-05-23 23:15 ` Robert A Duff
2008-05-24 0:45 ` Randy Brukardt
2008-05-24 8:25 ` Dmitry A. Kazakov
2008-05-24 16:14 ` Robert A Duff
2008-05-24 19:04 ` Dmitry A. Kazakov
2008-05-24 20:52 ` Robert A Duff
2008-05-25 8:12 ` Dmitry A. Kazakov
2008-05-25 11:28 ` Maciej Sobczak
2008-05-25 12:35 ` Robert A Duff
2008-05-26 8:16 ` Dmitry A. Kazakov
2008-05-24 19:39 ` Georg Bauhaus
2008-05-24 20:45 ` Robert A Duff
2008-05-19 8:35 ` Maciej Sobczak
2008-05-19 15:11 ` Matthew Heaney
2008-05-19 21:13 ` Maciej Sobczak
2008-05-23 23:03 ` Robert A Duff
2008-05-24 0:12 ` Adam Beneschan
2008-05-16 22:45 ` anon
2008-05-17 7:34 ` Pascal Obry
2008-05-17 15:11 ` Bob Klungle
2008-05-17 15:27 ` Pascal Obry
2008-05-17 16:18 ` Georg Bauhaus
2008-05-20 8:04 ` Ole-Hjalmar Kristensen
2008-05-20 8:01 ` Ole-Hjalmar Kristensen
2008-05-20 10:03 ` Martin Krischik
2008-05-17 17:23 ` Martin Krischik
2008-05-17 16:51 ` Maciej Sobczak
2008-05-17 17:45 ` Pascal Obry
2008-05-17 22:28 ` Samuel Tardieu
2008-05-18 7:03 ` Martin Krischik
2008-05-18 8:50 ` jhc0033
2008-05-18 9:31 ` Dmitry A. Kazakov
2008-05-18 14:10 ` Maciej Sobczak
2008-05-18 14:59 ` Dmitry A. Kazakov
2008-05-18 20:51 ` Maciej Sobczak
2008-05-19 8:36 ` Dmitry A. Kazakov
2008-05-18 15:03 ` Martin Krischik
2008-05-18 18:27 ` jhc0033
2008-05-19 4:12 ` Matthew Heaney
2008-05-19 8:39 ` Maciej Sobczak
2008-05-19 15:37 ` Matthew Heaney
2008-05-19 21:21 ` Maciej Sobczak
2008-05-19 23:02 ` Matthew Heaney
2008-05-19 10:27 ` Martin Krischik
2008-05-17 22:42 ` Peter C. Chapin
2008-05-18 6:58 ` Martin Krischik
2008-05-18 6:52 ` Martin Krischik
2008-05-18 14:16 ` Maciej Sobczak
2008-05-17 14:30 ` Brian Drummond
2008-05-17 16:47 ` Maciej Sobczak
2008-05-19 14:45 ` Brian Drummond
2008-05-20 7:42 ` Maciej Sobczak
2008-05-20 18:01 ` jayessay
2008-05-18 8:06 ` Simon Wright
2008-05-18 14:21 ` Maciej Sobczak
2008-05-18 20:48 ` Simon Wright
2008-05-19 14:40 ` Brian Drummond [this message]
2008-05-19 3:44 ` Matthew Heaney
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox