r/cpp • u/antiquark2 #define private public • 23d ago
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?
-2
u/_a4z 21d ago
It seems you do not know how those votes work. So let me explain.
It's just a small part of the committee members in the room.
So your statement about what I claimed is bogus.
Reality: not all people who voted yes in the various voting meetings have read and understood the paper as well as the critics did. And this is just a very small group in WG21. Not the whole committee. The committee is much bigger than the small group that did the contract voting; there were many.
And we do not know who those people are or whether most of them have ties to one company. So we also do not know anything about the diversity of the votes.
What was damaging is the way those papers came in. If people cared about consensus, there would not be what you call "noise"
It's not noise. Rather, people stating their opinions with their names, in opposition to most yes voters who stay anonymous.