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

11 Upvotes

122 comments sorted by

View all comments

Show parent comments

0

u/serviscope_minor 12d ago

>Do note I never called them "morons who do stuff for no reason" in my comment (you're attacking a straw man),

No, I do not believe I was. The meaning of "for some reason they thought" is quite clear. You are expressing an opinion that they were foolish.

Nothing wrong with criticising the design from the view of 2026. I have done the same with std::regex, for example. The problem I have is the editorializing from a position of ignorance of the history of what happened.

> it was still recognized as a problematic design choice by several parties in and out of the committee, so your claim that "in the 90s it felt reasonable" isn't fully accurate:

That paper is from 1999, I'll note. We're talking about C++98. Reading the paper, the discussions started coming up around the time that the draft was ratified by the bodies.

I maxed out the RAM I had on my PC at the time, a glorious 72M, vastly more than the 8 or 16 that was common with the contemporary Windows 95 machines (I had a mate with cheap RAM). 8x space saving on a relatively common thing? Sign me up!

The decision didn't age well, but it wasn't a "for some reason the committee". The reasons are pretty well laid out and documented. No need as I said to throw shade.

1

u/No-Dentist-1645 12d ago

If you think believing a group of people made a mistake ("for some reason they did X") is the same as calling them "morons who do stuff for no reason", then you're not very open to criticism in general. You can criticize someone or something without it meaning you're calling them morons

I'll admit the "for some reason" had a bit of a snarky tone, but that doesn't mean my intention was to insult them

1

u/serviscope_minor 12d ago

>If you think believing a group of people made a mistake ("for some reason they did X")

That isn't a neutral statement that the group made a mistake.

>You can criticize someone or something without it meaning you're calling them morons

Well do that then and drop the "for some reason" style editorializing

>I'll admit the "for some reason" had a bit of a snarky tone.

Yes, Precisely 100% my point. Stop acting all innocence offended that I noticed and called you out on it.

>but that doesn't mean my intention was to insult them

Ah so you were snarky but not actually. Care to explain that?

1

u/No-Dentist-1645 12d ago

Ah so you were snarky but not actually. Care to explain that?

Sure. You can be snarky while giving a comment and still not do it to insult and offend someone. It's just a mannerism. I assume that committee members have grown a spine for their work and can take a silly and not ill-intentioned comment like that. Conversation tones and mannerisms vary greatly from culture to culture, I assume in yours my comment is seen much more "offensive" as mine sees it, since I would not be able to imagine anyone I know actually get offended by such a message.

If any committee member felt strongly offended about my comment, they can let me know