C++ Logo

sg15

Advanced search

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

From: Ryan McDougall <mcdougall.ryan_at_[hidden]>
Date: Tue, 14 Oct 2025 10:28:28 -0700
C++ is practically defined by its list of surprising behaviours -- this is
not new, nor a bar for rejecting an otherwise full, well founded, and
desired proposal. It is making a mountain out of a molehill, so the baby
can be out with the bath water. P3640 is neither full nor well founded.
While adding new complexity to C++ that could surprise some is regrettable,
the idea that it is "less safe -- full stop!" is professionally inexcusable
hyperbole.

On Tue, Oct 14, 2025 at 10:09 AM Ville Voutilainen <
ville.voutilainen_at_[hidden]> wrote:

> On Tue, 14 Oct 2025 at 19:47, Ryan McDougall <mcdougall.ryan_at_[hidden]>
> wrote:
> >
> > Saying P2900 removes UB but... makes it slightly harder for some
> diagnoses of that UB -- which is IFNDR anyway -- and is therefore "less
> safe -- full stop!" is... not professionally sound -- to say the least.
> This mountain/mole-hill/baby/bathwater territory.
>
> P2900 keeps all the possibly surprising behaviors but removes the
> ability to reject them. I also fail to see whose statements you think
> you are describing.
> There are ways to provide contract functionality without such
> problems, see
> https://open-std.org/JTC1/SC22/WG21/docs/papers/2025/p3640r0.pdf
>

Received on 2025-10-14 17:28:43