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.9 required=5.0 tests=BAYES_00,FORGED_GMAIL_RCVD, FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,c0d427d5f4af20f8 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!postnews.google.com!o13g2000cwo.googlegroups.com!not-for-mail From: "Hyman Rosen" Newsgroups: comp.lang.ada Subject: Re: generics in Ada 83 Date: 14 Sep 2005 08:23:01 -0700 Organization: http://groups.google.com Message-ID: <1126711381.425805.248380@o13g2000cwo.googlegroups.com> References: <1126617980.932226.320710@g43g2000cwa.googlegroups.com> <1126703715.202970.293880@g47g2000cwa.googlegroups.com> NNTP-Posting-Host: 204.253.248.208 Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" X-Trace: posting.google.com 1126711387 24894 127.0.0.1 (14 Sep 2005 15:23:07 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Wed, 14 Sep 2005 15:23:07 +0000 (UTC) User-Agent: G2/0.2 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.10) Gecko/20050716 (No IDN) Firefox/1.0.6,gzip(gfe),gzip(gfe) Complaints-To: groups-abuse@google.com Injection-Info: o13g2000cwo.googlegroups.com; posting-host=204.253.248.208; posting-account=lJDDWg0AAACmMd7wLM4osx8JUCDw_C_j Xref: g2news1.google.com comp.lang.ada:4662 Date: 2005-09-14T08:23:01-07:00 List-Id: Jean-Pierre Rosen wrote: > In Ada, there is no need to check legality on the expansion of the > generic. Correct me if I'm wrong, but my understanding of templates is > that the legality is rechecked for each instantiation. Well, in Ada, instantiations check the parameters for validity against whatever contract the generic specifies for them. In C++, the contract is implied by the usage within the template, so yes, the legality is rechecked that way. But remember that in C++ template instatntiation is done strictly at compile-time. As far as the programmer is concerned, either an instantiation validly meets the template's requirements for its parameters, or the code fails to compile, and that is true for both languages (or at least I think that's true for Ada).