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,a84eaf8fb2470909 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!postnews.google.com!a3g2000cwd.googlegroups.com!not-for-mail From: "Hyman Rosen" Newsgroups: comp.lang.ada Subject: Re: Ada generics Date: 22 Dec 2006 10:26:21 -0800 Organization: http://groups.google.com Message-ID: <1166811980.980627.270680@a3g2000cwd.googlegroups.com> References: <1166710494.869393.108730@a3g2000cwd.googlegroups.com> <17fe4xfogg7p5.1dcyc5nyc2gsl.dlg@40tude.net> <1166805696.291429.239590@48g2000cwx.googlegroups.com> NNTP-Posting-Host: 204.253.248.208 Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" X-Trace: posting.google.com 1166811987 22404 127.0.0.1 (22 Dec 2006 18:26:27 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Fri, 22 Dec 2006 18:26:27 +0000 (UTC) User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1; .NET CLR 2.0.50727) Gecko/20061204 Firefox/2.0.0.1,gzip(gfe),gzip(gfe) Complaints-To: groups-abuse@google.com Injection-Info: a3g2000cwd.googlegroups.com; posting-host=204.253.248.208; posting-account=lJDDWg0AAACmMd7wLM4osx8JUCDw_C_j Xref: g2news2.google.com comp.lang.ada:7994 Date: 2006-12-22T10:26:21-08:00 List-Id: Markus E Leypold wrote: > I think the purpose is not "catching errors" but more likely delivering abstraction. True enough. Right now, that has to be handled in C++ by documentation. But the effect is just to let some things work that otherwise would be stopped. > Which just goes to show how evil that approach is. Nonsense. C++'s approach to identifying instantiations serves it excellently well in a variety of ways - traits classes, metaprogramming, optimized specializations, and best of all, automatic instantiation of function templates. You are simply displaying the usual comp.lang.ada parochialism of "if Ada doesn't have it then you don't need it". A non-type template parameter can be a reference to a floating point object, by the way, so the lack isn't all that serious: extern double sin(double); extern double const epsilon = 1e-6; template double integrate(double from, double to) { ... } int main() { integrate(0.0, 3.14); }