From: dewarr@my-dejanews.com
Subject: Re: access_to_constant as subprogram paramater
Date: 1998/09/19
Date: 1998-09-19T00:00:00+00:00 [thread overview]
Message-ID: <6u1b1h$f8d$1@nnrp1.dejanews.com> (raw)
In-Reply-To: 6u0pmf$rvk$1@nnrp1.dejanews.com
In article <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?
>
> 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;
>
> for which gnat produces:
>
> cd /usr/nelson/example/
> gnatmake -c access_parameter.adb
> gcc -c access_parameter.adb
> access_parameter.adb:22:10: access-to-variable designates constant
> gnatmake: "access_parameter.adb" compilation error
>
> Compilation exited abnormally with code 2 at Sat Sep 19 13:23:25
The real question here is why are you using an access parameter in any case.
I think that access parameters tend to be very much overused. In your example,
why on earth not just pass the string as an in parameter?
-----== Posted via Deja News, The Leader in Internet Discussion ==-----
http://www.dejanews.com/rg_mkgrp.xp Create Your Own Free Member Forum
prev 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
1998-09-20 0:00 ` dewarr
1998-09-19 0:00 ` dewarr [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