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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,f2c8b37fdc73a652 X-Google-Attributes: gid103376,public From: Matthew Heaney Subject: Re: Can Ada95 features replace the use of Ada 83 Varient records? Date: 1998/08/30 Message-ID: #1/1 X-Deja-AN: 386184898 Sender: matt@mheaney.ni.net References: <01bdcd2f$a7da71f0$0f010180@nc84c> NNTP-Posting-Date: Sun, 30 Aug 1998 10:02:23 PDT Newsgroups: comp.lang.ada Date: 1998-08-30T00:00:00+00:00 List-Id: "Mark" writes: > -- I'm new to Ada95 (Familar with 83) and thought that the use > -- of varient records in Ada 83 can be replaced by Tagged types. > > -- Is it possible to implement the following using Ada 95 features? Here you go: package Test is type Large_Data_Type is new Integer; -- large record normally type Rec_Type is tagged null record; type Changed_Rec_Type is new Rec_Type with record Data : Large_Data_Type; end record; function Get return Rec_Type'Class; end Test; package body Test is Large_Data : Large_Data_Type := 1; function Get return Rec_Type'Class is Outside_Event : Boolean := false; begin case Outside_Event is when True => return Changed_Rec_Type'(Data => Large_Data); when False => return Rec_Type'(null record); end case; end Get; end Test;