Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Any idea's on how long it takes to learn C++, then create a chessmonster

Author: Dann Corbit

Date: 15:26:44 12/11/01

Go up one level in this thread


On December 11, 2001 at 18:24:24, David Rasmussen wrote:
>On December 11, 2001 at 17:49:24, Dann Corbit wrote:
>>On December 11, 2001 at 17:25:26, Roy Eassa wrote:
>>[snip]
>>>I was under the impression that templates were a new programming construct with
>>>C++ (i.e., they did not exist in any language before they were introduced into
>>>C++).  Am I incorrect?
>>
>>The idea of Generic programming clearly predates templates.  For instance, in
>>Ada, we had generic packages long before templates were invented.
>>
>>However, I broadly prefer the template implementation.  Take a gander at the STL
>>complex template sometime, and see the incredible power of the template idea.  I
>>can create a template that uses a big number class as easily as a float, double,
>>or long double complex type.
>>
>>Here are some templates I wrote which are freely available for any use:
>>A Kahan adder
>>(see
>>http://docs.sun.com/htmlcoll/coll.648.2/iso-8859-1/NUMCOMPGD/ncg_goldberg.html
>>under "Theorem 8 Kahan Summation Formula"):
>>ftp://cap.connx.com/pub/tournament_software/Kahan.Hpp
>>
>>Here is a statistics template that uses Kahan adders:
>>ftp://cap.connx.com/pub/tournament_software/STATS.HPP
>>
>>Here is a template for Skiplists:
>>ftp://cap.connx.com/pub/Public_CAP_Results/Brainy/SKIPLIST.HPP
>>
>>The nice thing about templates is not writing them {which can be a bit of a
>>pain} but rather in *using* them.
>>
>>For instance, if I want to make a dictionary from my skiplist, I just declare
>>one with string as the type and bam - instant dictionary.  Any class that has a
>>greater than operator can be used by simply declaring it and we immediately have
>>a typesafe ADT container.  I used it (for instance) to create a very compressed
>>version of EPD data that can be used for inquiry as to analyzed positions.  It
>>can be just as useful for any sort of thing that needs O(log(n)) search time.
>>
>>I'm really enamored with templates.
>
>I really think that the way object-orientation, templates and generic
>programming (which is not just a buzzword), comes together in C++ is different
>and much more powerful than have been seen on similar devices in other
>languages. The "Containers of <T>" view of templates is too simplistic. Just
>take a look at the work of Andrei Alexandrescu in "Modern C++ Design - Design
>Patterns Applied". Reading that book made me wonder not only about what could be
>done in C++ today, but also what should be added to the language to make it even
>stronger. Some of his (amazing) stuff is just workarounds for missing features
>of the language that could easily be there.

I'm a fan of design patterns, and a big fan of this idea:
http://www.cs.wustl.edu/~schmidt/ACE.html

I pretty much like everything about that project, and have made a few (very
minor) suggestions for improvements.



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.