Sets Of Requirements

In the context of generic programming, the term concept is used to describe the collection of requirements that a template argument must meet for the function or class template to compile and operate properly.

The requirements for a concept consist of a set of valid expressions, associated types, invariants and complexity guarantees. A type models a concept if it meets the set of requirements. A concept can also extend the requirements of another concept, which is called refinement.

These are quotations from TheBoostGraphLibrary p.27-28

The problem being addressed is the one described in GenericVsObjectOrientedProgramming. What can happen in practice with programming using C++ templates is that a wrong choice of object type gives rise to extremely long compile time error messages which are difficult to understand. The requirements can be programmed in such a way as to get cleared compile time error messages which locate the origin of the problem.

There is program code for this in the The Boost Concept Check Library (BCCL) which is one of the BoostLibraries and is documented at http://www.boost.org/libs/concept_check/concept_check.htm

JohnFletcher

See also ConceptCpp and ConceptGcc.


CategoryCpp CategoryCppTemplates


EditText of this page (last edited May 19, 2007) or FindPage with title or text search