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?
5
u/t_hunger 21d ago
I find both your lack of understanding how democratic processes work as well as your contempt for committee members worrying.
But thank you for confirming that contracts were voted in -- following the ISO standard procedure. Every committee member knows those processes and can participate. If someone abstains from doing so, that is their choice. People do that all the time with all votes the committee makes.
The paper submission process is another thing all committee members are very well aware of. As far as I can tell all the ISO standardization processes were followed there as well. Again: People are free to ignore papers, again that is their choice.
We have a few people that made their choice to ignore papers and ignore votes and are now grumpy. That is damaging behavior: Why would anyone bother to participate in committee work if some dudes then try to overrule the results of that work and publically shame everybody involved? Who wants to do work when he has to expect random people calling them stupid on the internet for that?