C++ Logo

std-proposals

Advanced search

Re: [std-proposals] Using -1 as the max value for an unsigned integer

From: Lorand Szollosi <szollosi.lorand_at_[hidden]>
Date: Wed, 30 Jul 2025 02:08:24 +0200
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++.

Thanks,
-lorro
> I'm not keen on:
>
>     size_t n = my_string.find("bla bla");
>     if ( std::numeric_limits<decltype(n)>::max() == n ) DoSomething();
>
> Nor am I keen on:
>
>     size_t n = my_string.find("bla bla");
>     if ( string::npos == n ) DoSomething();

Here I would write

        if (my_string.npos == n)
                DoSomething();


> And it's annoying when a compiler emits a warning for "-1 == n" to say
> that I'm comparing signed with unsigned.
--
Std-Proposals mailing list
Std-Proposals_at_[hidden]
https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
--
Std-Proposals mailing list
Std-Proposals_at_[hidden]
https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals

Received on 2025-07-30 00:08:37