Concepts
Concepts are a sort of 'interfaces' in generic programming.
They are not formulated as C++ constructs, but they are part of the documentation.
A concept is defined by a set of functions and metafunctions, and
a class implements a concept if it implements the functions and metafunctions of this concept.
Note: The list of concepts is not complete yet. Completing it is ongoing work.
Concepts
Aggregate types contain a fixed number of fixed-size values. | |
Object that manages memory allocation. | |
Object that contains other objects. | |
Concept for mutable containers. | |
Object that stores information about the haystack of a search and the current search position. | |
Concept for types that have a host. | |
Object that stores information about the needle of a search. | |
Concept for sequences. | |
Object that does not need constructors, destructors or copy assignment operators. | |
Concept for I/O streams. |
Alphabets
Natural container value. | |
An alphabet that includes a specific gap character. | |
An alphabet where qualities can be attached to the characters. | |
An alphabet which includes a specific "unknown" character. | |
An type that is of finite domain and totally ordered and thus has a minimum and maximum value. | |
Totally strict ordered alphabet. |
Basic
A type with an assignment operator. | |
A type with a copy-constructor. | |
A type with a default constructor. | |
A type with a destructor. | |
An integral type. | |
An integral type with a sign. | |
An integral type without a sign. |
Comparisons
A type that can be compared. | |
A type that can be equality compared. | |
A type that can be less-than compared. |
Iterators
Iterator that allows dereferenced writing. | |
Iterator that can be both incremented and decremented. | |
Iterator that allows passing over a linear sequence multiple times. | |
Iterator that allows dereferenced reading. | |
Requires metafunctions for the associated types used in the iterator concepts. | |
A Bidirectional Iterator that allows dereferenced assignment | |
A Forward Iterator that allows dereferenced assignment. | |
A RandomAccessIteratorConcept that allows assignable derefentiation. | |
A Rooted Iterator that allows dereferenced assignment. | |
A Rooted Iterator that allows dereferenced assignment. | |
An iterator allowing random access. | |
Iterator that knows its container. | |
An iterator that is both rooted and random access, allowing to implement position. |
SeqAn - Sequence Analysis Library - www.seqan.de