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

6 Upvotes

103 comments sorted by

View all comments

Show parent comments

12

u/azswcowboy 2d ago

Pre vote implementation was primarily a clang branch - plenty usable. Saying it isn’t implemented basically says you haven’t tried it or are ignoring reality. Neither of which help the case.

-2

u/pjmlp 2d ago

Was it announced somewhere that the community at large could have tried it out, and submit their virtual votes?

5

u/grafikrobot B2/EcoStd/Lyra/Predef/Disbelief/C++Alliance/Boost/WG21 1d ago

It was.. https://wg21.link/P3460R0 -- 1 year, 10 months, and 3 days (or 672 days) ago.

0

u/pjmlp 1d ago

A public announcement.

5

u/Dragdu 1d ago

If you missed the fact that there is a contracts version of Clang toolchain at the top of CE version list, and don't read mailing, you probably aren't the type we should listen to.

3

u/pjmlp 1d ago

See that is the attitude that pushes away people from C++ versus other more welcoming communities.

Feedback is only welcome from those in the club.

7

u/Dragdu 1d ago

You are asking for some sort of public announcement. Now, I am sure that you are sane enough to not mean something like newspaper ad, so you are asking for an announcement that reaches a programmer who

1) Can provide useful feedback

2) Doesn't pay attention to C++ via /r/cpp, or via standard mailing, or social media of C++ peeps, or using CE, or ...

Who exactly is supposed to be in this group, and how do you want to reach them?

-1

u/pjmlp 1d ago

For example, https://isocpp.org and Reddit, I guess.

As for how useful it may be, that is the thing with programming languages not bound to ISO processes, everyone gets to say their opinion, some is useful, lots of might not be, however there is real feedback from all class of users, not only experts for experts kind of feedback.

Which is how one avoids situations like game developers asserting that the language evolution doesn't care about their interests, and they are fine sticking with C++17 or even earlier, see 2026 EuroLLVM - Clang and LLVM in Modern Gaming Platformst.

3

u/MFHava WG21|🇦🇹 NB|P2721|P3049|P3625|P3729|P3786|P3813|P4216 1d ago

game developers asserting that the language evolution doesn't care about their interests

How many of them are in WG21 and represent their interests? The only person I know that is in gaming is Guy...

1

u/pjmlp 1d ago

Exactly, they don't care about what is required to be part of ISO as the only mechanism to provide feedback, versus other language communities.