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=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,b553d2c02a2df59f X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!postnews.google.com!j33g2000cwa.googlegroups.com!not-for-mail From: "Matthew Heaney" Newsgroups: comp.lang.ada Subject: Re: limited types (Was: Records that could be arrays) Date: 28 Feb 2006 11:58:11 -0800 Organization: http://groups.google.com Message-ID: <1141156690.991228.267400@j33g2000cwa.googlegroups.com> References: <1cwl2r5h594du$.1q4kglbpb2bma.dlg@40tude.net> <10ovc4gxk6wka.gttjb2v0fbcq$.dlg@40tude.net> <13yslifejxwuq.15rip8gh2aufj.dlg@40tude.net> <44031ace$0$13779$9b4e6d93@newsread4.arcor-online.net> <1i6nwodxgp1bn.voklt7nvcl1g$.dlg@40tude.net> <1141059143.617291.39980@i40g2000cwc.googlegroups.com> <1dd53t0syyc1z.1ety6xoat1ce5$.dlg@40tude.net> <1141081229.680793.223430@j33g2000cwa.googlegroups.com> <9nmzg0hsmfkw$.33czd3g8z0qs.dlg@40tude.net> <1141147475.263018.23440@u72g2000cwu.googlegroups.com> NNTP-Posting-Host: 66.162.65.162 Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" X-Trace: posting.google.com 1141156697 27177 127.0.0.1 (28 Feb 2006 19:58:17 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Tue, 28 Feb 2006 19:58:17 +0000 (UTC) In-Reply-To: User-Agent: G2/0.2 X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322),gzip(gfe),gzip(gfe) Complaints-To: groups-abuse@google.com Injection-Info: j33g2000cwa.googlegroups.com; posting-host=66.162.65.162; posting-account=Zl1UPAwAAADEsUSm1PMMiDjihtBlZUi_ Xref: g2news1.google.com comp.lang.ada:3208 Date: 2006-02-28T11:58:11-08:00 List-Id: Dmitry A. Kazakov wrote: > On 28 Feb 2006 09:24:35 -0800, Matthew Heaney wrote: > > I still don't see CS. I wrote the declaration wrong; it should have been: generic type ET is private; --or: type ET (<>) is limited private; type CT is private; --cursor type with function E (C : CT) return ET is <>; procedure Generic_Algorithm (C1, C2 : CT); The cursor pair [C1, C2) describes a range of elements. It might be the entire range of elements in the container, or just a subrange. The algorithm doesn't care. > BTW, if I had CS, would need not to instantiate Generic_Algorithm once > more. (I assume "CS" means "container of element type S, and S derives from type T.") As far as generic algorithms are concerned, it doesn't matter that type S derives from type T. That's what "generic algorithm" means. And yes, you have to instantiate the algorithm twice, since the cursor types come from different instantiations of some generic container package. Of course, if you instantiate the indefinite container package on generic actual type T'Class, then you'd only have to instantate generic algorithm once (assuming generic formal type ET is declared appropriately, as I show above in the comment).