This article may require cleanup to meet Wikipedia's quality standards. Please discuss this issue on the talk page or replace this tag with a more specific message. This article has been tagged since December 2006.
In generic programming, a concept is a description of supported operations on a type, including syntax and semantics. In this way, concepts are related to abstract base classes but concepts do not require a subtype relationship. Generic programming is a way of computer programming where algorithms are written in an extended grammar and are made adaptable by specifying variable parts that are then somehow instantiated later by the compiler with respect to the base grammar. ... In software engineering, an abstract type is a type in a nominative type system which is declared by the programmer, and which has the property that it contains no members which are not also members of some declared subtype. ...
For example, if a type I satisfies the Trivial Iterator concept in C++, and i is of type I, the following are valid expressions with corresponding semantics[1].
I i default construction.
*i must be convertible to some type T.
i->m is valid if (*i).m is.
Concepts have been accepted into the C++ standard for the next revision. C++ (pronounced see plus plus, IPA: ) is a general-purpose, high-level programming language with low-level facilities. ...
External links
Boost Generic Programming Techniques
ConceptC++ compiler
Douglas Gregor, et al. Concepts: Linguistic Support for Generic Programming in C++