On 6 Oct 2023, at 16:35, Timur Doumler <cpp@timur.audio> wrote:
 So it would be very helpful to have some kind of SG22 poll or decision or record of consensus (or however you do these things!) to say one of three things: "SG22 wants the attribute-like syntax" or "SG22 wants the P296 syntax" or "SG22 is officially undecided".

Sorry, there's a typo: "P296 syntax" -> "P2961 syntax"

One more thing I would like to add is that if anyone is curious about the detailed rationale *why* we do not want to allow token-ignoring contracts in C++, there is Joshua Berne's excellent paper P2932R1 which explains this in section 2.2. The key quote is this one:

Principle 2: Program Semantics Are Independent of Chosen CCA Semantics
The semantic with which a CCA is evaluated must not affect the compile-time semantics surrounding that annotation, e.g., any observable traits of expressions or function invocations involving evaluation of the CCA.

("CCA" stands for "contract-checking annotation"; "semantic" means one of the following three: "ignore" (don't evaluate predicate), "observe" (evaluate predicate; if it does not evaluate to `true`, print a diagnostic and continue), and "enforce" (evaluate predicate;  if it does not evaluate to `true`, print a diagnostic and terminate the program).

Cheers,
Timur