8 Statements [stmt]

8.8 Assertion statement [stmt.contract.assert]

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); // #1 contract_assert(i >= 0); // #2 return 0; } int g = f(0); // can evaluate #1, #2, #1, #2 — end example]
— end note]