comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Problem in "X (1).Re := X (1).Re + 1"
Date: Mon, 7 May 2012 20:14:42 -0500
Date: 2012-05-07T20:14:42-05:00	[thread overview]
Message-ID: <jo9s26$scj$1@munin.nbi.dk> (raw)
In-Reply-To: 10294366.7.1336426132700.JavaMail.geo-discussion-forums@yngg23

"Adam Beneschan" <adam@irvine.com> wrote in message 
news:10294366.7.1336426132700.JavaMail.geo-discussion-forums@yngg23...
On Monday, May 7, 2012 11:53:58 AM UTC-7, ytomino wrote:
> On Tuesday, May 8, 2012 12:37:44 AM UTC+9, Adam Beneschan wrote:
...
>So it looks to me like the method you suggest shouldn't be allowed, even in 
>your own container,
> since it would make it impossible to implement Constant_Reference 
> correctly.

It seems to me that his implementation is wrong, since Constant_Reference 
creates a reference, so it should be impossible for something else to 
"deallocate" the reference at the same time. (I'm talking about in a 
hand-created container,  I don't think this implementation would be 
legitimate for Vectors - although I'm not certain). That probably means that 
Constant_Reference would have to increase the reference count when it is 
created and decrease it when it is destroyed (specifically the reason why 
these return record types with discriminants rather than just a bare access 
value). If that's done, his original example is fine.

I'm pretty sure reference counting will work as an implementation using 
generalized indexing, but it is pretty complicated (as it always is). But I 
haven't actually tried this in practice, so I could be wrong...

                                   Randy.





  reply	other threads:[~2012-05-08  1:14 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-05 12:55 Problem in "X (1).Re := X (1).Re + 1" ytomino
2012-05-07 15:37 ` Adam Beneschan
2012-05-07 18:53   ` ytomino
2012-05-07 21:28     ` Adam Beneschan
2012-05-08  1:14       ` Randy Brukardt [this message]
2012-05-08 17:14         ` Adam Beneschan
2012-05-08 22:29           ` Randy Brukardt
2012-05-09  8:41             ` ytomino
2012-05-10  0:52               ` Randy Brukardt
2012-05-10  5:23                 ` ytomino
2012-05-09  9:29           ` ytomino
2012-05-10  0:58             ` Randy Brukardt
2012-05-10  4:26               ` ytomino
2012-05-15  6:09                 ` Randy Brukardt
2012-05-15 20:17                   ` ytomino
2012-05-16  0:01                     ` Randy Brukardt
2012-05-15 22:12               ` Simon Wright
2012-05-16  7:14                 ` Dmitry A. Kazakov
2012-05-09  8:05       ` ytomino
2012-05-09 11:03         ` ytomino
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox