Date: Wed, 30 Jul 2025 08:05:53 +0200
On Wed, 30 Jul 2025, 02:08 Lorand Szollosi, <szollosi.lorand_at_[hidden]>
wrote:
> Hi,
>
>
> On 28 Jul 2025, at 10:15, Jonathan Wakely via Std-Proposals <
> std-proposals_at_[hidden]> wrote:
>
>
>
>
> On Mon, 28 Jul 2025, 04:23 Magnus Fromreide via Std-Proposals, <
> std-proposals_at_[hidden]> wrote:
>
>> On Fri, Jul 18, 2025 at 10:15:22AM +0100, Frederick Virchanza Gotham via
>> Std-Proposals wrote:
>>
> > But I always do this:
>> >
>> > size_t n = my_string.find("bla bla");
>> > if ( -1 == n ) DoSomething();
>>
>>
>
> Let’s not forget the obvious:
> if (!(n + 1)) DoSomething();
>
> (Or, if you prefer, if (n + 1 == 0) DoSomething(); )
>
> Unsigned integer overflow is well-defined in C++.
>
This doesn't work if size_t is smaller than int and so gets promoted to a
positive value smaller than INT_MAX. I know of one target where that's
true.
wrote:
> Hi,
>
>
> On 28 Jul 2025, at 10:15, Jonathan Wakely via Std-Proposals <
> std-proposals_at_[hidden]> wrote:
>
>
>
>
> On Mon, 28 Jul 2025, 04:23 Magnus Fromreide via Std-Proposals, <
> std-proposals_at_[hidden]> wrote:
>
>> On Fri, Jul 18, 2025 at 10:15:22AM +0100, Frederick Virchanza Gotham via
>> Std-Proposals wrote:
>>
> > But I always do this:
>> >
>> > size_t n = my_string.find("bla bla");
>> > if ( -1 == n ) DoSomething();
>>
>>
>
> Let’s not forget the obvious:
> if (!(n + 1)) DoSomething();
>
> (Or, if you prefer, if (n + 1 == 0) DoSomething(); )
>
> Unsigned integer overflow is well-defined in C++.
>
This doesn't work if size_t is smaller than int and so gets promoted to a
positive value smaller than INT_MAX. I know of one target where that's
true.
Received on 2025-07-30 06:06:17