**** THIS LIBRARY WAS MOVED INTO Boost ****
New location: https://github.com/boostorg/contract

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.
See: http://contractpp.sourceforge.net

Features

  • 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.

Project Samples

Project Activity

See All Activity >