From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Convert an access to constant to access to variable
Date: Fri, 4 Aug 2017 19:26:27 -0500
Date: 2017-08-04T19:26:27-05:00 [thread overview]
Message-ID: <om33bk$f3c$1@franka.jacob-sparre.dk> (raw)
In-Reply-To: om2rph$18jt$1@gioia.aioe.org
"Victor Porton" <porton@narod.ru> wrote in message
news:om2rph$18jt$1@gioia.aioe.org...
> What is the proper way to convert an access to constant to access to
> variable? (Yes, I know that then I need to be careful not to modify this
> "variable".)
Well, it's not a proper conversion, so there isn't going to be a "proper"
way.
> Maybe Unchecked_Conversion?
That's one possibility.
> But:
>
> 1. Is Unchecked_Conversion guaranteed by the standard to work well in this
> case?
I think so. The rules for what must work are found in 13.9(5-10). I suppose
a compiler could represent access-to-constant and access-to-variable
differently.
In any case, your program is erroneous if it tries to write a constant. (But
you knew that.)
> 2. Is there a simpler way than Unchecked_Conversion?
The alternative (assuming the access-to-variable is a general access type)
is to use 'Access to convert:
Ptr.all'Access
Nope, that won't work, because Ptr.all is a constant, and the result here
has to be a variable in order to assign it into an access-to-variable.
You could certainly use Address_to_Access_Conversions, but whether that's
"simpler" is in the eye of the beholder. (It also requires an instantiation,
and usually an extra type conversion.)
Randy.
next prev parent reply other threads:[~2017-08-05 0:26 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-04 22:17 Convert an access to constant to access to variable Victor Porton
2017-08-05 0:26 ` Randy Brukardt [this message]
2017-08-05 1:00 ` Victor Porton
2017-08-07 23:21 ` Randy Brukardt
2017-08-05 1:37 ` Victor Porton
2017-08-05 17:27 ` Stephen Leake
2017-08-05 17:41 ` Victor Porton
2017-08-07 23:16 ` Randy Brukardt
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox