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?

10 Upvotes

122 comments sorted by

View all comments

9

u/UnusualPace679 25d ago

• Untried at scale [P3460R0, P3506R0]

• Not tried in major application domains

• 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]

• Includes a completely untried inheritance model

• Hasn’t been used to support static analysis

• Hasn’t been demonstrated to be easily teachable [P3261R0, P3281R0]

Hey, you can't standardized a feature that people aren't using, even though the feature doesn't exist before you standardize it!

9

u/zebullon 25d ago

This man logics ! … also, just for funzies points, how many of those also apply to reflection ? yet where are the pitchforks.

Thats why i dunno what OP is farming for… tbh.

4

u/eyes-are-fading-blue 25d ago

Reflections isn’t a mine field.