
On 10/06/2011, at 12:12 AM, Dominique Devriese wrote:
Note that the more recent C++ concepts are related to (and inspired by?) Haskell type classes. See Bernardy et al.'s interesting paper "A comparison of c++ concepts and haskell type classes":
The book "Elements of Programming" by Stepanov (inventor of the STL) and McJones uses "concepts" heavily. Quoting the Wikipedia: In the pending C++0x revision of the C++ programming language, concepts and the related notion of axioms were a proposed extension to C++'s template system, designed to improve compiler diagnostics and to allow programmers to codify in the program some formal properties of templates that they write. Incorporating these limited formal specifications into the program (in addition to improving code clarity) can guide some compiler optimizations, and can potentially help improve program reliability through the use of formal verification tools to check that the implementation and specification actually match. ** In July 2009, the C++0x committee decided to remove concepts ** from the draft standard C++ concepts have an extremely obvious connection to Ada generics (the key idea having been present already in Ada 83; I _think_ in Ada 81 but I don't have an Ada 81 reference handy to check) and Eiffel generics. I'd have said they were closer to SML signatures than to anything in Haskell.