C++ Logo

sg15

Advanced search

Re: [isocpp-sg15] [isocpp-sg21] P3835 -- Different contract checking for different libraries

From: John Spicer <jhs_at_[hidden]>
Date: Tue, 21 Oct 2025 14:17:13 -0400
The “deployment experience” for a feature depends on the extend to which it is considered needed. That is, of course, subjective.

There are many changes where we think we have sufficent experience.

There are others where we don’t think we have enough experience.

We all try to avoid making mistakes as much as possible.

For a completely new feature like reflection, we can only try to do our best.

Everyone already has their own version of contracts, even if they don’t go by that name. For us to add a feature for contracts, it has to make life better for most of the people that already use some other mechanism.

If you want to argue that reflection does not have enough deployment experience, then please feel free to make that case.

C++26 includes a feature that allows trailing commas in places where they were not previously allowed. Would you like to object to that on the basis of deployment experience>

Of course not.

We all want to make sure that C++26 works well and, as expected for users.

Tom, I really respect your contributions to C++, your significant management of SG15, and your contributions otherwise, but this seems like a “grasping at straws” argument for contracts.

John.

> On Oct 21, 2025, at 12:05 PM, Tom Honermann via SG21 <sg21_at_[hidden]> wrote:
>
> On 10/21/25 11:47 AM, Ville Voutilainen wrote:
>> On Tue, 21 Oct 2025 at 12:20, Timur Doumler <cpp_at_[hidden]> wrote:
>>> I understand the calls for real deployment experience, but I don't understand how is a Contracts TS or whitepaper would help us get that?
>> Well, see, it's actually less about what the ship vehicle
>> semi-magically (I'm intentionally joking here) does. It's about what
>> chance anyone
>> has to experiment with the feature before we nail it into an IS.
>>
>> Let's face it, it's excruciatingly difficult and therefore unlikely
>> for so-called third parties to experiment with what we have right now.
>> You would
>> need to build a fork-branch compiler, and then deploy that and then do
>> the actual experimentation. That by nature shuts out quite a bunch of
>> users.
>
> The following is intended as a serious question; I'm not intending to throw shade at other C++26 features.
>
> The only implementation of P2996 reflection is in the same state of requiring a fork-branch compiler build of Clang. I'm assuming you consider that implementation sufficient for reflection because I don't see papers calling for its removal due to lack of deployment experience. There has been no deployment experience of P2996 reflection. Why is that sufficient for reflection, but not sufficient for contracts?
>
> Tom.
>
> _______________________________________________
> SG21 mailing list
> SG21_at_[hidden]
> Subscription: https://lists.isocpp.org/mailman/listinfo.cgi/sg21
> Link to this post: http://lists.isocpp.org/sg21/2025/10/11633.php

Received on 2025-10-21 18:17:30