From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail From: Simon Wright Newsgroups: comp.lang.ada Subject: Re: grassroots thoughts on access types Date: Fri, 09 Feb 2018 09:13:52 +0000 Organization: A noiseless patient Spider Message-ID: References: <5d9134c9-a7d4-468e-8685-ebbb393eabea@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: reader02.eternal-september.org; posting-host="198667b081821b0bc55a0255d0a80d46"; logging-data="3930"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+cr1xgxrIs/ocyvnfRiSbl3xuIaJscrpA=" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (darwin) Cancel-Lock: sha1:MJHLCayXdLXh7lZcjqIxU615mh8= sha1:LNmS46pvBXdIDMDlswDQ+NmH5Vg= Xref: reader02.eternal-september.org comp.lang.ada:50334 Date: 2018-02-09T09:13:52+00:00 List-Id: "Randy Brukardt" 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);