comp.lang.ada
 help / color / mirror / Atom feed
From: Ted Dennison <dennison@telepath.com>
Subject: Re: Multi-dimensional Array of Functions ?
Date: 2000/05/05
Date: 2000-05-05T00:00:00+00:00	[thread overview]
Message-ID: <8euje5$rfd$1@nnrp1.deja.com> (raw)
In-Reply-To: 169b2ded.062ddfc5@usw-ex0109-068.remarq.com

In article <169b2ded.062ddfc5@usw-ex0109-068.remarq.com>,
  John O'Malley <john.omalleyNOjoSPAM@hs.utc.com.invalid> wrote:
> I am a newbie to ada and I am looking for an example of an
> array of functions. The project I am currently working on
> has a procedure which is a gaint case statement with nested
> cases that make function calls. This procedure is
> unreadable and could easily be reduced by 99% by using a
> multidimensional array containing pointers to functions.

Often the case statement can be removed entirely using dynamic
dispatching. See if there's a way to make a tagged type with a
predefined function and one child type per case branch. Then you can
just have Ada dispatch to the appropriate function based on which
subtype of the parent tagged type was passed in.

> I know how to create an array of pointers to functions in C
> and I was wondering if this is even possible in ada 83 or
> 95. If it is possible, do all the functions in the array
> have to be formatted the same (i.e same pass and return
> parameters)? Any help and/or examples would be appreciated.

Its possible in Ada 95. Get out your handy-dandy Ada 95 book (whichever
one you are using) and look up access to subprogram types.

--
T.E.D.

http://www.telepath.com/~dennison/Ted/TED.html


Sent via Deja.com http://www.deja.com/
Before you buy.




      parent reply	other threads:[~2000-05-05  0:00 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-05-04  0:00 Multi-dimensional Array of Functions ? John O'Malley
2000-05-05  0:00 ` Alfred Hilscher
2000-05-05  0:00 ` Jim Rogers
2000-05-05  0:00 ` Ted Dennison [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