Concepts * are a new language feature proposed for C++0x that provide complete type-checking for template definitions and uses. * can drastically improve the error messages produced by libraries that make heavy use of templates. * benefit users by providing a more flexible, simple and cleaner implementation of the standard library producing short, direct error message. * "introduce a type system for templates that makes templates easier to use and easier to write. ** By checking the requirements that templates place on their parameters prior to template instantiation, concepts can eliminate the spectacularly poor error messages produced by today’s template libraries, making them easier to use. ... ** At the core of concepts is the idea of separate type checking for templates. Template declarations are augmented with a set of constraints (requirements): ** if the definition of the template typechecks against these requirements, and a use of a template meets these requirements, then the template should not fail to instantiate." *** http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2081.pdf ---- * Introduction ** http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2036.pdf * ConceptIntersection * ConceptCpp ** More information about concepts in CeePlusPlus. * ConceptGcc ** Information about a demonstration compiler for concepts. This is not currently being developed (2011). * CeeLanguageFamilyFrontEnd (Clang) ** A version of this called ConceptClang is being developed which includes concepts (2011). ---- Comparing Concepts in Differentiated Ontologies * PeterWeinstein ** http://www-personal.umich.edu/~peterw/KAW99/weinstein.html ---- Programming Languages * Research ** http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mleone/web/language-research.html ---- Related: * TheCppStandardsCommittee * CeePlusPlusEleven * CeePlusPlusOneWhy * Haskell's Type Classes ---- CategoryCpp CategoryCppTemplates CategoryConcepts