|  | Home | Libraries | People | FAQ | More | 
This section contains notes on all releases of this library (from the latest to the oldest).
January 6, 2018 (Il Giorno della Befana)
First Boost release:
Released files are part of Boost.
September 2, 2017
Contracts without the macros:
override,
                  final, and new (because override
                  can be programmed directly using C++11, while final
                  and new are rarely
                  if ever used).
                static_assert
                  emulation (because this can be programmed directly using C++11,
                  or using Boost.StaticAssert).
                .except(...),
            etc.).
          call_if and condition_if (assertions requirements
            were supported also by previous revisions of this library but they were
            handled by internal code generated by the contract macros).
          Released files.
| ![[Note]](../../../../../doc/src/images/note.png) | Note | 
|---|---|
| This revision of the library passed Boost formal review and it was accepted into the Boost libraries (see https://groups.google.com/forum/?fromgroups=#!topic/boost-list/jQ7OjAmos_Y). | 
August 20, 2012
Accepted into Boost:
CONTRACT_MEMBER_BODY(class_type, function_name) to class_type::CONTRACT_MEMBER_BODY(function_name) so the macro can also be used to declare
            derived classes avoiding using the library syntax even when the base
            class has contracts.
          Released files.
June 4, 2012
Simplified syntax, added named parameters and concepts:
ConstantCopyConstructible
            requirement just for the old value expression type (e.g., a vector might
            not be copyable while its size always is because it is an integral type).
            Removed the copyable
            tag.
          CONTRACT_CLASS
            macro and removed the need to duplicate declaration elements (do not
            repeat function declaration, do not repeat class name in function declaration,
            etc).
          _TPL macros so
            to reduce compile-time (instead of internally making all templates contract
            functions so to use typename
            freely).
          Released files.
March 7, 2010
Support for most/all C++ constructs:
volatile,
            auto, explicit,
            export, extern,
            friend, inline,
            struct, and throw (for exception specifications).
          union cannot
            be contracted.
          Released files.
February 21, 2010
Support for most/all contract programming features:
self,
            variable.now, and variable.old
            in writing contracts. Object this
            and variables are now accessed as usual in member functions. CONTRACT_OLDOF(variable)
            is used to access old values in postconditions.
          (precondition), (postcondition),
            and (body) to specify contracts within the function
            signature sequence. If no preconditions then (precondition)
            ({...}) is simply omitted from
            the sequence (same for postconditions, body is mandatory instead). For
            non-void functions, users can name the result argument with (postcondition) (result-name) ({...}).
          F function type).
          std::terminate()).
          (precondition),
            (postcondition), and (body)
            because Doxygen preprocessor is not capable to handle Boost.Preprocessor
            sequences).
          Released files.
November 21, 2009
Compiled on both GCC and MSVC:
().
          Released files.
April 19, 2009
Cleaned-up first release:
Released files.