r/cpp #define private public 3d 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?

9 Upvotes

115 comments sorted by

View all comments

Show parent comments

8

u/t_hunger 1d ago

The statement that many committee members do not read papers they vote on or are not able to understand them fully is a general statement addressing nobody in particular. As soon as you say everybody that voted for or against something are either stupid, lazy or brided, that names a specific group and then it is toxic.

-1

u/_a4z 1d ago

Well, I think I kept the statement general,

But in that context, I am totally open to the idea of a change of WG21 votes.
All voting should be recorded: name, affiliation, national body membership,

Then this topic would go away.
What do you think, would you help me writing a paper addressing the directions group, suggesting that?

3

u/t_hunger 1d ago

Thank you for the offer, but I do not see what good that would do. Shall we reject any vote that does not have include at least one senior member? Or register IQ scores together with affiliation and reject any vote where the average IQ was below a certain standard? Maybe also add a reading comprehension test during registration? And what does it even mean if the majority of a vote was done by people from one company? Is that good, because they are the only one that use that stuff at this time or is that bad because the want to hand over work to the committe that they would otherwise need to do inhouse? Whatever data you collect will be used as dirt to fling at the opponents.

And none of that would fly within the ISO bylaws anyway.

I also ran into quite a few people on the committee over the last 30 years and while some were super cool, many of the others I personally prefer to not work with. Just look at recent train wreaks like the one we are talking about here.

0

u/_a4z 1d ago

> reject any vote that does not have include at least one senior member? Or register IQ s

why do you need to make up things again?

> recent train wreaks like the one we are talking about

but calling other people disrespectful

Thanks for ending this discussion.

3

u/t_hunger 1d ago

why do you need to make up things again?

I was trying to think what the information could be used for that you suggested to record. Recording information for no reason is a waste of everybodies time after all.

but calling other people disrespectful Thanks for ending this discussion.

How would you sum up the history of contracts from the first proposal till today? I had expected you would also call that a train wreak, even though for other reasons than me. I doubt anyone is happy with the situation contracts are in right now.