From: John English <je@bton.ac.uk>
Subject: Re: A question to the "access-type lifetime rule"
Date: 2000/04/04
Date: 2000-04-04T12:57:54+00:00 [thread overview]
Message-ID: <38E9E6A5.AC631EEA@bton.ac.uk> (raw)
In-Reply-To: 38E89AB9.7D33E88C@hamilton.physik.uni-konstanz.de
Bernd Rinn wrote:
>
> Hi,
>
> I am new to Ada and I am looking for an elegant way to get around a
> restriction posed by the "access-type lifetime rule" for
> access-to-subprogram types. First of all: does anyone know, why the
> access-type lifetime matters and not the access-variable lifetime? (This
> should prevent dangling pointers as well, I guess.)
>
> I want to write an numerical integration function, that is defined in a
> separate package as
>
> type Integrand_Type is access function ( X : Long_Float ) return
> Long_Float;
> function Integrate(Integrand : Integrand_Type; Lower_Bound, Upper_Bound
> : Long_Float) return Long_Float;
>
> Now I would like to call this from a main procedure and pass an access
> attribute of a nested function of the main procedure as `Integrand'. Is
> there a way to reach this? (Unchecked_Access is not an allowed attribute
> for subprograms and I do not want to generate a package of it's own for
> the integrand function.)
If you declare the package where Integrate is declared like this:
generic
package X is ...
then in the same declaration section as the nested function you say
this:
package Inner_X is new X;
and voila, you have smuggled the declarations from X into the inner
scope (the access level of Inner_X being the level at which the
instantiation occurs).
-----------------------------------------------------------------
John English | mailto:je@brighton.ac.uk
Senior Lecturer | http://www.it.bton.ac.uk/staff/je
Dept. of Computing | ** NON-PROFIT CD FOR CS STUDENTS **
University of Brighton | -- see http://burks.bton.ac.uk
-----------------------------------------------------------------
prev parent reply other threads:[~2000-04-04 0:00 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-04-03 0:00 A question to the "access-type lifetime rule" Bernd Rinn
2000-04-03 0:00 ` David
2000-04-03 0:00 ` Gautier
2000-04-03 0:00 ` Jean-Marc Bourguet
2000-04-03 0:00 ` Robert Dewar
2000-04-04 0:00 ` John English [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