Critique of contracts: excerpt
See page 2 of https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p4334r0.pdf
> The current objections can be summarized. The P2900 contracts are:
> • Unimplemented
> • Incomplete
> • Untried at scale [P3460R0, P3506R0]
> • Not tried in major application domains
> • Violates foundational principles of C++
> • Violates fundamental principles of language design
> • Hasn’t been tried in major libraries (e.g., the C++ standards library [P3506R0, P3878R0])
> • Isn’t integrated with or appropriate for hardened libraries [P3878R0]
> • Doesn’t offer safety guarantees [P3573R0, P3362R0]
> • Includes a completely untried inheritance model
> • Offer new ways of making errors through inconsistent application in TUs
> • Leads to new forms of UB, detrimental to safety and security
> • Narrows the choices of error handling
> • Doesn’t protect against logical errors, misuses, and incoherent uses
> • Hasn’t been used to support static analysis
> • Hasn’t been demonstrated to be easily teachable [P3261R0, P3281R0]
> How could such a bloated and incomplete design be voted into a draft standard?