2.4 KiB
[stmt.contract.assert]
8 Statements [stmt]
8.9 Assertion statement [stmt.contract.assert]
assertion-statement:
contract_assert attribute-specifier-seqopt ( conditional-expression ) ;
An assertion-statement introduces a contract assertion ([basic.contract]).
The optional attribute-specifier-seq appertains to the introduced contract assertion.
The predicate ([basic.contract.general]) of an assertion-statement is its conditional-expression contextually converted to bool.
The evaluation of consecutive assertion-statements is an evaluation in sequence ([basic.contract.eval]) of the contract assertions introduced by those assertion-statements.
[Note 1:
A sequence of assertion-statements can thus be repeatedly evaluated as a group.
[Example 1: int f(int i){contract_assert(i == 0); // #1contract_assert(i >= 0); // #2return 0;}int g = f(0); // can evaluate #1, #2, #1, #2 â end example]
â end note]