|
Boost : |
Subject: [boost] [optional] Doc Nit
From: Dave Abrahams (dave_at_[hidden])
Date: 2012-10-26 19:00:56
> A typical approach is to consider the existence of a
> valid return value as a postcondition, so that if the
> function cannot compute the value to return, it has
> either undefined behavior (and can use assert in a
> debug build) or uses a runtime check and throws an
> exception if the postcondition is violated. This is a
> reasonable choice for example, for function (A),
This is possibly technically correct, but confusing. Undefined behavior
results from precondition violations, not postcondition violations.
I'd suggest:
One approach is to make a non-negative argument a precondition, so when
violated the function has undefined behavior (and can use assert in a
debug build). Alternatively, one can use a runtime check and specify
that an exception is thrown if the postcondition cannot be
satisfied. These are a reasonable choice for example, for function (A),
I'm not sure the first sentence is quite right for your needs, but I'm
out of time to improve it further.
-- 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