comp.lang.ada
 help / color / mirror / Atom feed
From: Mark Biggar <mark.a.biggar@attbi.com>
Subject: Re: point by point advantages of Ada
Date: Mon, 13 Jan 2003 16:37:48 GMT
Date: 2003-01-13T16:37:48+00:00	[thread overview]
Message-ID: <wXBU9.545080$GR5.320765@rwcrnsc51.ops.asp.att.net> (raw)
In-Reply-To: v1p2ssf14l1801@corp.supernews.com

Randy Brukardt wrote:
> Warren W. Gay VE3WWG wrote in message <3E1B4C4C.7050205@cogeco.ca>...
> 
>>Randy Brukardt wrote:
> 
> 
>>I thought that this might work:
>>
>>   declare
>>      V : T'Class := ...
>>   begin
>>      ...
>>      V := Some_Other_Func;  - Dispatching
>>   end;
>>
>>But GNAT (at least) reports that this assignment is "ambiguous"
>>and will not compile it. I would have expected that it would
>>resolve it at runtime, knowing the current value of V and its
>>current tag. Is this consistent with the LRM (IANAL)?
> 
> 
> Unfortunately, the LRM has no position on this. This case is not covered
> at all by the standard. The ARG has been working (slowly) on an AI to
> fix this, and it finally was finished in October and approved at the
> recent ARG and WG9 meetings. It's AI-196.
>     http://www.ada-auth.org/cgi-bin/cvsweb.cgi/AIs/AI-00196.TXT
> 
> The solution is essentially to add a paragraph saying that your example
> works as you expect. Now, of course, you'll have to wait for Ada
> compilers to conform to this ruling. (Which will be helped when an ACATS
> test gets added for it.)

This isn't the interesting case anyway.  The interesting case
is where the function is used as a parameter to another subroutine
which has additional dispatching operands.  For example:

Type Set is tagged ...;

function Union(L, R: Set) return Set;
function Empty return Set;

Type Ordered_Set is new Set with ... ;

function Union(L, R: Ordered_Set) return Ordered_Set;
function Empty return Ordered_Set;

S: Ordered_Set'class := ...;

S := Union(S, Empty);

Now, which version of Empty is called is determined by run-time
dispatch depending of whether S is a Set or an Ordered_Set.

-- 
Mark Biggar
mark.a.biggar@attbi.com




  reply	other threads:[~2003-01-13 16:37 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-12-26 21:57 point by point advantages of Ada Russ
2002-12-27 10:54 ` Ingo Marks
2002-12-27 21:11   ` Keith Thompson
2002-12-27 21:31     ` Robert A Duff
2002-12-29 18:31 ` Colin Paul Gloster
2002-12-29 20:09   ` James S. Rogers
2003-01-06 23:13     ` David Thompson
2003-01-07  1:35       ` James S. Rogers
2003-01-07 19:34         ` Randy Brukardt
2003-01-07 21:53           ` Warren W. Gay VE3WWG
2003-01-08  0:36             ` Richard Riehle
2003-01-08 17:50               ` Warren W. Gay VE3WWG
2003-01-08 20:31             ` Randy Brukardt
2003-01-13 16:37               ` Mark Biggar [this message]
2002-12-29 21:56   ` Hyman Rosen
2002-12-29 22:30     ` John R. Strohm
2002-12-29 23:16       ` Hyman Rosen
2003-01-02 14:24         ` Wes Groleau
2003-01-03  8:20           ` Hyman Rosen
2003-01-03 14:00             ` Wes Groleau
2003-01-08 20:55               ` Georg Bauhaus
2002-12-29 19:20 ` chris.danx
replies disabled

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