Compounds | |
struct | utility::remove_reference |
Turn a reference type into its corresponding plain type. More... | |
struct | utility::remove_const |
Turn a const type into its corresponding mutable type. More... | |
struct | utility::static_if |
Choose between two types or values depending on a constant boolean. More... | |
struct | utility::static_eq |
Test for equality between two types. More... | |
struct | utility::static_pow |
Static exponentiation. More... | |
struct | utility::static_pow_minus_one |
Static exponentiation, result minus one. More... | |
class | utility::SupportIterator |
Iterator over the Support generic class. More... | |
class | utility::Support< std::map< U, T > > |
Support<map<U, T> > is a const adapter of std::map to container. More... | |
class | utility::SparseIterator |
SparseIterator is an iterator over range except some points. More... | |
class | utility::SparseInterval |
Container over a sparse integer range. More... | |
class | utility::SelfIterator |
SelfIterator is an iterator which is also a container. More... | |
Functions | |
template<class U, class T> | Support< std::map< U, T > >::Support (const Support &s) |
support<map<U, T> > is a const adapter of std::map to container. |
Assertions are a weak kind of contract, which states that a specified property must hold.
A failed assertion should always mean that an internal inconsistency has been detected, caused by a software (or hardware) bug.
Preconditions ensure that the prerequisites for using a function or instanciating a template are fulfilled.
Breach of a precondition should prevent the library user from using a feature, either generating a type error for forbidden template instanciations or run-type exception at function entry.
Postconditions ensure that the result of a computation exhibit the specified properties.
Breach of a precondition should show that an algorithm is false.
Some services are purely abstract and should not be called directly. In most cases this kind of information is expressed through C++ typing.
In addition to contracts, the library is equiped with mechanisms intended to inform the user of misbehaviors, undocumented properties, deprecated features and so on.
Deprecated features are features that have been superceded by others, and intended to be removed at some point.
Weak implementations are code pieces written to ensure that a specified feature is provided, but was not tested for full conformance.
Weak implementations should work with most trivial cases but denote a library weakness on which the developers will focus.
Incomplete implementations are code pieces written to ensure that a specified expressivity is provided, but without providing the actual feature.