C++ Logo

sg15

Advanced search

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

From: Ville Voutilainen <ville.voutilainen_at_[hidden]>
Date: Tue, 21 Oct 2025 19:10:56 +0300
On Tue, 21 Oct 2025 at 19:06, Tom Honermann <tom_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?

Because the impact of reflection on APIs of C++ code in general is
much smaller, and much more controlled and contained,
and because the core language part that will be hard to change is
likewise better-contained and not everywhere-seeping
like it is for contracts.

Received on 2025-10-21 16:11:14