N3997: Centralized Defensive-Programming Support for Narrow Contracts (R5) -- Lakos, Zakharov, Beels

A new WG21 paper is available. A copy is linked below, and the paper will also appear in the next normal WG21 mailing. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

Document number: N3997

Date: 2014-05-27

Centralized Defensive-Programming Support for Narrow Contracts (Revision 5)

by John Lakos, Alexei Zakharov, Alexander Beels


In this proposal, we describe a centralized facility for supporting generalized runtime validation of function contracts. ..

This proposal is a revision to N3963.

In response to comments at Issaquah, a facility has been added to allow installation of a scoped, thread-local contract-violation handler. When a handler is installed using this facility, the handler will be used only by assertions in the thread from which the handler is installed, and only for the duration of the scope in which the handler is active. At the end of that scope, the previously installed handler for that thread will be restored -- i.e., either the previously installed local handler or (if no local handler was previously installed) the global one.
Additionally, an error in the specified behavior of the contract-assert test macros (section 11.2.5) has been corrected.

Finally, the formal wording has been extensively revised to increase clarity.

Add a Comment

Comments are closed.

Comments (0)

There are currently no comments on this entry.