C++ Logo

sg15

Advanced search

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

From: Oliver Rosten <oliver.rosten_at_[hidden]>
Date: Mon, 20 Oct 2025 14:56:41 +0100
PS Most people I teach have no prior idea what an ODR violation is.

On Mon, 20 Oct 2025 at 14:55, Oliver Rosten <oliver.rosten_at_[hidden]>
wrote:

> That's a proof of existence but not of wide-spread usage.
>
> I am honestly ignorant here. As far as I know the C++ ecosystem as a whole
> is not making rigorous use of things like this. But I may be wrong...
>
> On Mon, 20 Oct 2025 at 14:53, Ville Voutilainen <
> ville.voutilainen_at_[hidden]> wrote:
>
>> On Mon, 20 Oct 2025 at 16:46, Oliver Rosten
>> <oliver.rosten_at_[hidden]> wrote:
>> >
>> > Hi John,
>> >
>> > I'm not convinced by this:
>> >
>> >> No, it is not a pre-existing problem.
>> >> Other than contracts, if you end up with different function
>> definitions it is an ODR violation and your program is IFNDR and can be
>> rejected by your tools.
>> >
>> >
>> > There's a difference between "can be in principle" and "is in general
>> practice". Is it not the case that, in most instances, for all practical
>> purposes there is no difference between an ODR violation that's IFNDR and
>> the contracts mixed-mode: you get what the linker gives you?
>>
>> See, for example,
>> https://devblogs.microsoft.com/oldnewthing/20160803-00/?p=94015
>> See also https://maskray.me/blog/2022-11-13-odr-violation-detection
>>
>

Received on 2025-10-20 13:56:54