comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Return_By_Reference or Return_By_Copy (GNAT bug?)
Date: Mon, 3 Jan 2005 17:11:24 -0600
Date: 2005-01-03T17:11:24-06:00	[thread overview]
Message-ID: <H4ydndUFyuAmTUTcRVn-3A@megapath.net> (raw)
In-Reply-To: mailman.21.1104616882.527.comp.lang.ada@ada-france.org

"Duncan Sands" <baldrick@free.fr> wrote in message
news:mailman.21.1104616882.527.comp.lang.ada@ada-france.org...
> I was playing around with return by reference to see if it is possible to
> get unserialized access to a protected variable using the Rosen trick (it
is,
> see example below, especially the protected object P in package C).  Will
this
> be illegal in Ada 2005?

Yes, it will.

...
...
> package body B is
>
>    The_A : A_Type;
>
>    function Get_The_A return A_Type is
>    begin
>       return The_A;

-- This return will be illegal in Ada 2005 (the return expression is not an
aggregate or function call).
-- Declare the function:
    function Get_The_A return access A_Type is
    begin
       return The_A'Access;
-- to do this in Ada 2005. (Note this makes it explicit what you're doing -
a good thing, IMHO.)

>    end;

...

> package body C is
>
>    protected body P is
>
>       function Get_A return A_Type is
>       begin
>          return P_A;

-- Similarly, this return will be illegal in Ada 2005.
--  (Can't return an object from a limited function, as that would require a
copy into the result object.)
-- Use the same workaround as above.

>       end Get_A;
>
>    end P;
>
> end;

...







  reply	other threads:[~2005-01-03 23:11 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-31 11:07 Return_By_Reference or Return_By_Copy (GNAT bug?) Duncan Sands
2004-12-31 21:32 ` Randy Brukardt
2005-01-01 22:00   ` Duncan Sands
2005-01-03 23:11     ` Randy Brukardt [this message]
2005-01-04  4:20       ` Larry Kilgallen
2005-01-04 23:27         ` Randy Brukardt
2005-01-08 13:06       ` Duncan Sands
2005-01-10 21:05         ` Randy Brukardt
2005-03-08 16:12           ` Duncan Sands
replies disabled

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