comp.lang.ada
 help / color / mirror / Atom feed
From: stt@houdini.camb.inmet.com (Tucker Taft)
Subject: Re: access_to_constant as subprogram paramater
Date: 1998/09/19
Date: 1998-09-19T00:00:00+00:00	[thread overview]
Message-ID: <EzJo6C.5EC.0.-s@inmet.camb.inmet.com> (raw)
In-Reply-To: 6u0pmf$rvk$1@nnrp1.dejanews.com

nelson@blaze-net.com wrote:

: Why does the language disallow an access_to_constant as a parameter
: to a subprogram?

At the time of the design, we didn't have a compelling-enough
reason to include this capability.  Personally, I was a little
concerned that using "access constant" for access-to-constant
parameters, but simply "access" (instead of "access all") for
access-to-variable parameters would also confuse people.  In retrospect,
I wish we had included the access-to-constant parameters, but
it doesn't seem like a very big deal either way.

In any case, you can just use a named access-to-constant
type in many cases, or even simpler, a plain old "IN" parameter.

: For example:

: --
: -- Example illustrating desire to pass access_to_constant to a procedure.
: -- Refer to RM 3.10(12) and 6.1.
: --
: procedure Access_Parameter is

:    PathName : aliased constant String := "/a/b/c.adb";
:       -- Declared as constant in order to produce compilation error


:    procedure Parse (Input : access String) is
: --
: -- Would like to declare this:
: --    procedure Parse (Input : access constant String) is
: -- as Parse never modifies the input string
: --
:    begin
:       null;  -- Parse a pathname string into components
:    end Parse;

: begin
:    Parse(PathName'Access);  -- line 22
: end Access_Parameter;

What's wrong with "Input : in String"?  That seems by far the
simpler approach in a case like this, and no need to use that
gnarly "'Access" at all.

-- 
-Tucker Taft   stt@inmet.com   http://www.inmet.com/~stt/
Intermetrics, Inc.  Burlington, MA  USA
An AverStar Company




  parent reply	other threads:[~1998-09-19  0:00 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-09-19  0:00 access_to_constant as subprogram paramater nelson
1998-09-19  0:00 ` David C. Hoos, Sr
1998-09-19  0:00 ` Tucker Taft [this message]
1998-09-20  0:00   ` dewarr
1998-09-19  0:00 ` dewarr
replies disabled

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