From: Joh Harbaugh <john.s.harbaugh2@boeing.com>
Subject: Re: Tasks with discriminants
Date: 1997/12/11
Date: 1997-12-11T00:00:00+00:00 [thread overview]
Message-ID: <34905735.13A8@boeing.com> (raw)
In-Reply-To: 3483C38C.1FF2@home.com
Larry Coon wrote:
>
> I've been playing with discriminants for tasks and I
> can't get something to work. I can declare a task
> such as the following:
>
> task type t (task_no: integer);
>
> And later create actual tasks:
>
> t1: t (1);
> t2: t (2);
> t3: t (3); -- etc...
>
> But if I want to declare an array of tasks, I
> can't figure out how to supply values for the
> discriminants:
>
> type task_array is array (1..3) of t;
> my_tasks: task_array; -- ????
>
> Can anybody tell me how the discriminants are
> supplied in this case? Thanks in advance.
>
> Larry Coon
> University of California
> larry@assist.org
> and lmcoom@home.com
A possibility is to create an array of dynamically allocated task:
Task_Count : constant := 3;
type Task_Ptrs is access all ADC;
-- Raises Program_Error with OA 7.1.105
-- Task_List : array(1..Task_Count) of Task_Ptrs :=
-- (new T(25), new T(20), new T(T15));
Another approach is to use aliased objects:
A : aliased T(25);
B : aliased T(20);
C : aliased T(15);
Task_List : array(1..Task_Count) of T_Ptrs :=
(A'access, B'access, C'access);
In any case, I have not found a way to create an array of static task
objects with discriminants. Perhaps someone else has found a way.
Best regards,
- John
prev parent reply other threads:[~1997-12-11 0:00 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
1997-12-02 0:00 Tasks with discriminants Larry Coon
1997-12-02 0:00 ` Mats Weber
1997-12-02 0:00 ` Gerald Kasner
1997-12-11 0:00 ` Joh Harbaugh [this message]
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox