THIS LIBRARY HAS MOVED TO: https://github.com/lcaminiti/boost-contract
This library was accepted into the "Boost C++ Libraries":
C++ Contract Programming (a.k.a. Design by Contract or DbC).
All Eiffel features supported: subcontracting, postcondition old and result values, optional contract compilation, customizable action on assertion failure, block invariants, loop variants, etc.
Plus virtual specifiers, concept checking, named parameters.
- Support for preconditions, postconditions, class invariants, block invariants, and loop variants.
- Subcontract derived classes (with support for pure virtual functions and multiple inheritance).
- Access expression old values and function return value in postconditions.
- Optional compilation and checking of preconditions, postconditions, class invariants, block invariants, and loop variants.
- Customizable actions on contract assertion failure (terminate by default but it can throw, exit, etc).
- Virtual specifiers.
- Concept checking.
- Named parameters.
Great software, thank you.