On Fri, Jun 24, 2016 at 2:25 PM, Andrzej Krzemienski
2016-06-24 22:10 GMT+02:00 Lorenzo Caminiti
: Here is the last version of the proposal: http://open-std.org/JTC1/SC22/WG21/docs/papers/2016/p0380r0.pdf
I always thought it'd be great to have contracts added to the core language... if not for anything else, for a more concise syntax and compiler optimizations. Unfortunately I found this P0380 proposal largely inadequate. In my opinion/experience, the following are major issues with P0380:
<snip>
N1962 (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1962.html) was a solid proposal for adding Contract Programming to C++. Why not accepting that proposal (maybe with the attributes syntax introduced by P0380)?
This proposal is more feature complete, but it does not go into details of how contracts interact with other c++-specific features like friends, noexcept, constexpr. It does not give evidence that it is sufficient to support static analysers.
Andrzej, as always your raise very good points and questions! I have now read most (all?) n/p-papers on contracts since N1962. I will try to address the questions above, especially with respect to what Boost.Contract does, in a hand full of separate emails on this mailing list. Thank you. --Lorenzo