Boost logo

Boost :

Subject: [boost] [Review] Boost.Contract Review Starts Today(*)
From: Dave Abrahams (dave_at_[hidden])
Date: 2012-08-23 13:40:02


The review period for Lorenzo Caminiti's Boost.Contract library runs
from today through August 31st. I'm pleased to serve as review manager.

,----[ Important Notes ]
| - Please begin your review's subject line with "[Review:Algorithms]"
| - Please do not post your review or discussion as a reply to this
| message.
| - Please feel free to note any individual issues in the issue
| tracker at https://sourceforge.net/apps/trac/contractpp/report/3
| (you'll need to log in at Sourceforge to add a ticket) and make
| reference to them from your review.
| - Please see below for *further* important notes
`----

THE LIBRARY

Boost.Contract implements Contract Programming (a.k.a., Design by
Contracts) for C++. In addition, the library implements virtual
specifiers, concept checking, and named parameters.

Documentation: http://contractpp.sourceforge.net
Source: http://sourceforge.net/projects/contractpp/files/latest/download

All N1962 requirements and Eiffel features are supported by the
library, among others:

1) Support for preconditions, postconditions, class invariants, block
invariants, and loop variants.
2) Subcontract derived classes (with support for pure virtual
functions and multiple inheritance).
3) Access expression old values and function return value in postconditions.
4) Optional compilation and checking of preconditions, postconditions,
class invariants, block invariants, and loop variants.
5) Customizable actions on contract assertion failure (terminate by
default but it can throw, exit, etc).

This library is implemented for C++03 and it does not require C++11.
Obviously, if the library is accepted, all macros will be prefixed by
BOOST_... and other symbols will go under the boost::... namespace.

Potential Interactions with Existing Boost Libraries
====================================================
This submission potentially interacts with the following existing
Boost libraries:

* parameter - http://boost.org/libs/parameter
* static_assert - http://www.boost.org/libs/static_assert
* MPL - http://www.boost.org/libs/mpl
* Concept - http://www.boost.org/libs/concept_check
Reviewers should consider these potential interactions.

What to include in Review Comments
==================================
- Keep your criticism constructive. Constructive criticism usually
  comes with specific suggestions for improvement.
- If you identify problems along the way, please note if they are minor,
  serious, or showstoppers.
- Please *do* vote on whether the library should be accepted. Everyone
  who takes the time to look at the library is qualified to vote, and
  every vote is valuable.
- Other questions you might want to answer in your review:
  * What is your evaluation of the design?
  * What is your evaluation of the implementation?
  * What is your evaluation of the documentation?
  * What is your evaluation of the potential usefulness of the library?
  * Did you try to use the library? With what compiler? Did you have any problems?
  * How much effort did you put into your evaluation? A glance? A quick reading? In-depth study?
  * Are you knowledgeable about the problem domain?

(*) Well, OK, the review period officially started yesterday. Sorry for
    the delayed announcement

-- 
Dave Abrahams
BoostPro Computing                  Software Development        Training
http://www.boostpro.com             Clang/LLVM/EDG Compilers  C++  Boost

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk