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.4 required=5.0 tests=AC_FROM_MANY_DOTS,BAYES_00 autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,604e0f87aa06eab6 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-04-01 06:38:10 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!out.nntp.be!propagator2-sterling!news-in.nuthinbutnews.com!cyclone1.gnilink.net!spamkiller2.gnilink.net!nwrdny02.gnilink.net.POSTED!53ab2750!not-for-mail From: "Frank J. Lhota" Newsgroups: comp.lang.ada References: <5115eb96.0303220201.44527637@posting.google.com> <5115eb96.0303232053.2fcc7d78@posting.google.com> <5115eb96.0303242148.57027600@posting.google.com> <6Y_fa.5102$kU.534@nwrdny01.gnilink.net> Subject: Re: Imitation is the sincerest form of flattery X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Message-ID: Date: Tue, 01 Apr 2003 14:38:08 GMT NNTP-Posting-Host: 141.157.177.80 X-Complaints-To: abuse@verizon.net X-Trace: nwrdny02.gnilink.net 1049207888 141.157.177.80 (Tue, 01 Apr 2003 09:38:08 EST) NNTP-Posting-Date: Tue, 01 Apr 2003 09:38:08 EST Xref: archiver1.google.com comp.lang.ada:35859 Date: 2003-04-01T14:38:08+00:00 List-Id: It is not entirely clear how multiple dispatch would work with a function such as Max. Consider this version of the function: -- Assuming Integer is tagged and MD is allowed function Max (Left, Right : Integer'Class) return Integer'Class is begin if Left < Right then return Right; else return Left; end if; end Max; Now assume we have the following declarations: type X_Integer is new Integer; -- Specialized version of "<" for X_Integer ... function "<" ( Left, Right : in X_Integer ) return Boolean; X : X_Integer; type Y_Integer is new Integer; -- Specialized version of "<" for Y_Integer ... function "<" ( Left, Right : in Y_Integer ) return Boolean; Y : Y_Integer; Within Max( X, Y ), which version of "<" is used?