mirror of
https://github.com/boostorg/contract.git
synced 2026-02-26 16:42:19 +00:00
124 lines
6.4 KiB
Plaintext
124 lines
6.4 KiB
Plaintext
|
|
[/ Copyright (C) 2008-2016 Lorenzo Caminiti]
|
|
[/ Distributed under the Boost Software License, Version 1.0 (see accompanying]
|
|
[/ file LICENSE_1_0.txt or a copy at http://www.boost.org/LICENSE_1_0.txt).]
|
|
[/ See: http://www.boost.org/doc/libs/release/libs/contract/doc/html/index.html]
|
|
|
|
[section Release Notes]
|
|
|
|
This section contains notes on the current and on all previous library releases (in chronological order).
|
|
|
|
[heading Release 0.4.1]
|
|
|
|
August 20, 2012
|
|
|
|
Notes:
|
|
|
|
# Using non-fix-spaced font in Full Table of Contents section.
|
|
# Added a couple of notes to the documentation.
|
|
# Changed `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.
|
|
|
|
Release [@http://contractpp.svn.sourceforge.net/viewvc/contractpp/releases/contractpp_0_4_1 files] and [@http://contractpp.svn.sourceforge.net/viewvc/contractpp/releases/contractpp_0_4_1/doc/html/index.html documentation].
|
|
|
|
[heading Release 0.4.0]
|
|
|
|
June 4, 2012
|
|
|
|
Notes:
|
|
|
|
# Simplified syntax by reducing extra parenthesis to the bare necessary minimum (using some of the preprocessor parsing techniques originally introduced by Boost.LocalFunction).
|
|
# Postcondition old values only copy the old-of expression (e.g., copy just vector size instead of entire vector).
|
|
This improves performance and introduces the `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.
|
|
# Body defined outside the macros (so compiler-errors for definitions retain their usual meaning).
|
|
# Added `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).
|
|
# Using `_TPL` macros so to reduce compile-time (instead of internally making all templates contract functions so to use `typename` freely).
|
|
# Overloading no longer requires unique parameter names.
|
|
# Added C++11-like virtual specifiers.
|
|
# Added constant assertions plus constant-expressions for select assertion if-conditions and for loop variants.
|
|
# Added named and deduced parameters.
|
|
# Added concept checking.
|
|
# Removed the interface to use the library without the macro (programmers were required to write too much boiler-plate code for the non-macro interface to be actually usable, plus supporting both the macro and non-macro interfaces limited what the macros could do).
|
|
|
|
Release [@http://contractpp.svn.sourceforge.net/viewvc/contractpp/releases/contractpp_0_4_0 files] and [@http://contractpp.svn.sourceforge.net/viewvc/contractpp/releases/contractpp_0_4_0/doc/html/index.html documentation].
|
|
|
|
[heading Release 0.3.490]
|
|
|
|
March 7, 2010
|
|
|
|
Notes:
|
|
|
|
# Added support and examples for `volatile`, `auto`, `explicit`, `export`, `extern`, `friend`, `inline`, `struct`, and `throw` (for exception specifications).
|
|
# Documented that `union` cannot be contracted.
|
|
|
|
Release [@http://contractpp.svn.sourceforge.net/viewvc/contractpp/releases/contractpp_0_3_490 files] and [@http://contractpp.svn.sourceforge.net/viewvc/contractpp/releases/contractpp_0_3_490/doc/html/index.html documentation].
|
|
|
|
[heading Release 0.3.469]
|
|
|
|
February 21, 2010
|
|
|
|
Notes:
|
|
|
|
# Removed use of `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.
|
|
# Added `(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) ({...})`.
|
|
# Changed contract class template to use same syntax as Boost.Function (i.e., `F` function type).
|
|
# Added support for free functions and static member functions.
|
|
# Added support for subcontracting with multiple inheritance.
|
|
# Added static class invariants which are always checked (also at constructors entry, destructor exit, and by static member functions).
|
|
# Added block invariants and Eiffel-like loop variants.
|
|
# Added handlers to customize action on contract failure (default to `std::terminate()`).
|
|
# Removed feature for automatic contract documentation using Doxygen (this is not compatible with added `(precondition)`, `(postcondition)`, and `(body)` because Doxygen preprocessor is not capable to handle Boost.Preprocessor sequences).
|
|
# Rewritten entire documentation (now using Boost.QuickBook instead of Doxygen).
|
|
|
|
Release [@http://contractpp.svn.sourceforge.net/viewvc/contractpp/releases/contractpp_0_3_469 files] and [@http://contractpp.svn.sourceforge.net/viewvc/contractpp/releases/contractpp_0_3_469/doc/html/index.html documentation].
|
|
|
|
[heading Release 0.2.190]
|
|
|
|
November 21, 2009
|
|
|
|
Notes:
|
|
|
|
# Compiled using both GCC (Linux and Cygwin) and MSVC (Windows XP).
|
|
# Required to use void to specify empty function argument list.
|
|
This is to comply with C++03 standard that does not allow to pass empty macro parameters so it does not support empty preprocessor sequences `()`.
|
|
|
|
Release [@http://contractpp.svn.sourceforge.net/viewvc/contractpp/releases/contractpp_0_2_190 files] and [@http://contractpp.svn.sourceforge.net/viewvc/contractpp/releases/contractpp_0_2_190/doc/html/index.html documentation].
|
|
|
|
[heading Release 0.1.126]
|
|
|
|
June 17, 2009
|
|
|
|
Notes:
|
|
|
|
# Completed first documentation draft.
|
|
|
|
Release [@http://contractpp.svn.sourceforge.net/viewvc/contractpp/releases/contractpp_0_1_126 files] and [@http://contractpp.svn.sourceforge.net/viewvc/contractpp/releases/contractpp_0_1_126/doc/html/index.html documentation].
|
|
|
|
[heading Release 0.1.55]
|
|
|
|
April 19, 2009
|
|
|
|
Notes:
|
|
|
|
# Reorganized files to cleanup root directory.
|
|
# Added installation program.
|
|
|
|
Release [@http://contractpp.svn.sourceforge.net/viewvc/contractpp/releases/contractpp_0_1_55 files] and [@http://contractpp.svn.sourceforge.net/viewvc/contractpp/releases/contractpp_0_1_55/doc/DBC_Documentation.txt documentation].
|
|
|
|
[heading Release 0.1.50]
|
|
|
|
April 19, 2009
|
|
|
|
Notes:
|
|
|
|
# First public release.
|
|
|
|
Release [@http://contractpp.svn.sourceforge.net/viewvc/contractpp/releases/contractpp_0_1_50 files] and [@http://contractpp.svn.sourceforge.net/viewvc/contractpp/releases/contractpp_0_1_50/README.txt documentation].
|
|
|
|
[endsect]
|
|
|