From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,9cfa83146b0781ed X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 1994-11-13 19:39:52 PST Path: nntp.gmd.de!newsserver.jvnc.net!howland.reston.ans.net!cs.utexas.edu!bcm!newsfeed.rice.edu!news.sesqui.net!uuneo.neosoft.com!Starbase.NeoSoft.COM!not-for-mail From: dweller@Starbase.NeoSoft.COM (David Weller) Newsgroups: comp.lang.ada Subject: Re: Overloading for T and T'Class Date: 13 Nov 1994 20:07:20 -0600 Organization: NeoSoft Internet Services +1 713 684 5969 Message-ID: <3a6goo$j7s@Starbase.NeoSoft.COM> References: NNTP-Posting-Host: starbase.neosoft.com Date: 1994-11-13T20:07:20-06:00 List-Id: In article , John Volan wrote: >In Ada9X, is it legal to overload the same subprogram name for both >some tagged type T and its class-wide type T'Class? For example: > > package P is > type T is tagged ... ; > procedure Op (X : in out T); > procedure Op (X : in out T'Class); > ... > end P; > My neophyte language-lawerly sense says "No", you can't do this. The reason being (I think, don't have my RM with me), is that the classwide operation declares an implicit operation within the immediate scope that is identical to your first declaration of Op. As a compiler, your declarations would confuse me, since the first Op says "I'm a primitive operation, and thus I may be extended and modified by descendants", and the second one says, "I'm a classwide operation, thus any descendant of my type (a member of T'Class) must execute this subprogram". A contradiction, from my perspective. I think GNAT (at the moment) permits this, further confusing the issue. Your example was similar to an issue discussed during a presentation I made on the first version of the Booch COmponents at Tri-Ada. -- Proud (and vocal) member of Team Ada! (and Team OS/2) ||This is not your Ada -- Very Cool. Doesn't Suck. || father's Ada For all sorts of interesting Ada tidbits, run the command: ||________________ "finger dweller@starbase.neosoft.com | more" (or e-mail with "finger" as subj.) ObNitPick: Spelling Ada as ADA is like spelling C++ as CPLUSPLUS. :-)