From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.5-pre1 Path: eternal-september.org!reader02.eternal-september.org!news.szaf.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!cleanfeed1-a.proxad.net!nnrp1-1.free.fr!not-for-mail Newsgroups: comp.lang.ada References: <607b56f8$0$3721$426a34cc@news.free.fr> From: DrPi <314@drpi.fr> Subject: Re: Unchecked_Deallocation with tagged types Date: Sun, 18 Apr 2021 11:13:05 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Message-ID: <607bf826$0$3733$426a74cc@news.free.fr> Organization: Guest of ProXad - France NNTP-Posting-Date: 18 Apr 2021 11:13:10 CEST NNTP-Posting-Host: 82.65.30.55 X-Trace: 1618737190 news-1.free.fr 3733 82.65.30.55:64974 X-Complaints-To: abuse@proxad.net Xref: reader02.eternal-september.org comp.lang.ada:61816 List-Id: Le 18/04/2021 à 10:21, Dmitry A. Kazakov a écrit : > On 2021-04-17 23:45, DrPi wrote: > >> I have the following types : >> >>    type t_Element_Record is tagged null record; >>    type t_Element is access all t_Element_Record'Class; >> >>    type t_Str_Record (Str_Length : Natural) is new t_Element_Record >> with record >>       Str : String (1 .. Str_Length); >>    end record; >>    type t_Str is access all t_Str_Record'Class; >> >> Do I have to create a Unchecked_Deallocation procedure for each tagged >> type or only one for the root tagged type (and the compiler manages >> the effective tagged type) ? > > You have Unchecked_Deallocation for the type you deallocate. In your > case the answer is neither. You instantiate Unchecked_Deallocation for > the class. > >   procedure Free is >      new Ada.Unchecked_Deallocation >          (  t_Element_Record'Class, >             t_Element >          ); > Thanks > P.S. Hungarian notation is evil. Using suffixes on top of Hungarian > notation is evil squared. > I know Ada convention is to use Camel_Case_Syntax. Maybe there's also a convention for naming ? What's the convention you use for naming ?