comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Wright <simon@pushface.org>
Subject: Re: grassroots thoughts on access types
Date: Fri, 09 Feb 2018 09:13:52 +0000
Date: 2018-02-09T09:13:52+00:00	[thread overview]
Message-ID: <lyr2pumsof.fsf@pushface.org> (raw)
In-Reply-To: p5it73$psq$1@franka.jacob-sparre.dk

"Randy Brukardt" <randy@rrsoftware.com> writes:

> Generally, type conversions for general access types are equivalent to
> ".all'Access".

.all'Access leaves it up to the compiler to figure out the conversion.

A colleague (one of the distinguished reviewers for Ada95) said (~2000)
he'd got into the habit of writing .all'Access, when usually (? - maybe
compiler issues) some thought would lead to the actual required
conversion.

>>         Instead of
>> function Set_Ptr (Elem : in T_Operateur) return T_Ptr_Token is
>>      Ptr_Token : T_Ptr_Token_Operateur;
>> can we write:
>> function Set_Ptr (Elem : in T_Operateur) return T_Ptr_Token is
>>      Ptr_Token : T_Ptr_Token;
>> ? What's the difference regards to implementation, memory usage or 
>> anything ?
>> T_TOKEN is a null tagged record type, T_TOKEN_OPERATEUR has one more 
>> enumerative component.
>
> No difference that I can see. T_Ptr_Token_Operateur seems like a
> totally unnecessary type to me, since the allocator would work just as
> well with T_Ptr_Token. (But I haven't tried this in an actual
> compiler, so I might have forgotten something subtle.)

We don't know the spec of Initialisation, but you might have to write

      Initialisation(T_Token_Operateur(Ptr_Token.all),Elem);


  reply	other threads:[~2018-02-09  9:13 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-09  0:46 grassroots thoughts on access types Mehdi Saada
2018-02-09  1:23 ` Randy Brukardt
2018-02-09  9:13   ` Simon Wright [this message]
2018-02-09 11:06     ` Dmitry A. Kazakov
2018-02-09 12:09 ` Mehdi Saada
2018-02-09 12:11   ` Mehdi Saada
2018-02-09 14:23     ` Simon Wright
2018-02-09 16:11       ` Mehdi Saada
2018-02-09 17:01 ` Jeffrey R. Carter
2018-02-09 17:19   ` Dmitry A. Kazakov
2018-02-09 19:12     ` Jeffrey R. Carter
2018-02-09 20:17       ` Robert A Duff
2018-02-09 21:44         ` Jeffrey R. Carter
2018-02-09 22:06           ` Dmitry A. Kazakov
2018-02-10  0:43             ` Mehdi Saada
2018-02-10  1:51               ` Mehdi Saada
2018-02-10 10:07                 ` Jeffrey R. Carter
2018-02-10 11:57                 ` Mehdi Saada
2018-02-10 14:02                   ` Simon Wright
2018-02-10 15:32                   ` Jeffrey R. Carter
2018-02-10 16:46                     ` Mehdi Saada
2018-02-10  8:28               ` Dmitry A. Kazakov
2018-02-10 11:55                 ` Mehdi Saada
2018-02-10 14:35                   ` Dmitry A. Kazakov
2018-02-10 16:51                     ` Simon Wright
2018-02-10 17:19                       ` Dmitry A. Kazakov
2018-02-10 10:03             ` Jeffrey R. Carter
2018-02-10 10:36               ` Dmitry A. Kazakov
2018-02-10 11:12                 ` Jeffrey R. Carter
2018-02-10 14:44                   ` Dmitry A. Kazakov
2018-02-10 21:16           ` Robert A Duff
2018-02-11 10:47             ` Jeffrey R. Carter
2018-02-11 21:51               ` Robert A Duff
2018-02-09 20:58       ` Shark8
2018-02-09 20:32 ` G. B.
2018-02-09 20:53   ` Mehdi Saada
replies disabled

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