comp.lang.ada
 help / color / mirror / Atom feed
From: "Robert C. Leif" <rleif@rleif.com>
Subject: RE: Run-Time Type Assignment
Date: Wed, 28 Aug 2002 08:39:07 -0700
Date: 2002-08-28T08:39:07-07:00	[thread overview]
Message-ID: <mailman.1030549202.6278.comp.lang.ada@ada.eu.org> (raw)
In-Reply-To: <3D6CB4F5.F4E05D76@myob.com>

From: Bob Leif
To: SK et al.
How does your solution work, if the variants are:
case Num_Parameters  is
  when 1 =>
    Parameter_1: Parameter_1_Type;
  when 2 =>
    Parameter_1: Parameter_1_Type;
    Parameter_2: Parameter_2_Type;
  when 3 =>
    Parameter_1: Parameter_1_Type;
    Parameter_2: Parameter_2_Type;
    Parameter_3: Parameter_3_Type;
end case;
This is the equivalent of a tagged type. Each succeeding variant
includes all of its predecessor and one new element. I have made it work
by defining new record types that include the elements for each variant.
However, this is cumbersome. I will be testing the other suggestions.
Thank you.
-----Original Message-----
From: comp.lang.ada-admin@ada.eu.org
[mailto:comp.lang.ada-admin@ada.eu.org] On Behalf Of sk
Sent: Wednesday, August 28, 2002 4:33 AM
To: comp.lang.ada@ada.eu.org
Subject: Re: Run-Time Type Assignment

Hi, 

> type Parameter_Rec_Psuedo_Tagged_Type (Num_Parameters :
Num_Parameters_Type) is --range 1..2
>   record
>      case Num_Parameters  is
>         when 1 =>
>            Parameter_1: Parameter_1_Type;
>         when 2 =>
>            Parameter_1: Parameter_1_Type;
>                --Parameter_1 conflicts with declaration 2 lines above.
>            --Can not have the same signature as the one above.
>            Parameter_2: Parameter_2_Type;         
>      end case;
>   end record;

type Disc_Rec ( Disc : Disc_Type) is record 

    Parm1 : Parm1_Type;

    case Disc is
        when 1 => null;
        when 2 => 
            Parm2 L Parm2_Type;
    end case;

end record;

Put common parameters in "common" area of record.

-- 
-------------------------------------
-- Merge vertically for real address
-------------------------------------
s n p @ t . o
 k i e k c c m
-------------------------------------




  parent reply	other threads:[~2002-08-28 15:39 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <002a01c24e5f$9ee347b0$789a0844@robertqgx6k4x9>
2002-08-28 11:33 ` Run-Time Type Assignment sk
     [not found] ` <3D6CB4F5.F4E05D76@myob.com>
2002-08-28 11:37   ` sk
2002-08-28 15:39   ` Robert C. Leif [this message]
2002-08-28 18:53     ` Jeffrey Carter
2002-08-28 20:54   ` Robert C. Leif
2002-08-28 22:55     ` Robert A Duff
2002-08-29  3:18       ` Robert C. Leif
     [not found] <005101c24ea9$0de9c960$789a0844@robertqgx6k4x9>
2002-08-28 16:06 ` sk
2002-08-28 22:44   ` tmoran
2002-08-29  0:37   ` tmoran
2002-08-28  6:53 Robert C. Leif
2002-08-28 11:04 ` Robert Dewar
2002-08-28 13:35   ` Robert A Duff
2002-08-28 14:56     ` Larry Kilgallen
2002-08-28 14:31       ` Robert A Duff
2002-08-28 14:59         ` Lutz Donnerhacke
2002-08-28 22:32           ` Robert A Duff
2002-08-29 22:55           ` Dmitry A.Kazakov
2002-08-28 18:03         ` Frank J. Lhota
2002-08-28 18:37           ` Pat Rogers
2002-08-28 22:47           ` Robert A Duff
2002-08-29 13:32             ` Ben Brosgol
2002-08-29 13:52               ` SIMON Claude
2002-08-29 14:30                 ` Robert A Duff
2002-08-29 18:27                   ` Randy Brukardt
2002-08-29 14:56               ` Robert A Duff
2002-08-30  3:04                 ` Ben Brosgol
2002-08-30 22:54                   ` Robert A Duff
2002-08-29 15:09               ` Larry Kilgallen
2002-08-29 14:29                 ` Marin D. Condic
2002-08-28 13:41 ` Robert A Duff
2002-08-28 17:15 ` Hyman Rosen
2002-08-28 20:27 ` Björn Lundin
replies disabled

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