C++ Logo

std-proposals

Advanced search

Re: [std-proposals] Require diagnostic for array to bool conversion

From: Alejandro Colomar <alx.mailinglists_at_[hidden]>
Date: Sun, 23 Jul 2023 13:13:41 +0200
Linters can usually warn about such conversions. Try clang-tidy(1).

And once you have guarantee that your code is fine, thanks to running
linters on your own code, why would you want to forbid it in the standard?
Maybe someone finds it useful in some corner case (likely to be in
C-compatible code).

On Sat, Jul 22, 2023, 10:40 sasho648 via Std-Proposals <
std-proposals_at_[hidden]> wrote:

>
> int arr[2];
> bool test = arr;
> bool teststr = "string";
>
>
> Which I came across while having a function like this:
>
> void set_property(const char *name, const char *default_value);
> void set_property_bool(const char*name, bool default_value);
>
> Where I thought the bool one was expecting a string as second argument as
> well and so I wrote:
>
> set_property_bool("test", "true");
>
> Which compiled fine and even worked until I decided to change it to:
>
> set_property_bool("test", "false");
>
> In my opinion such a conversion holds no value - since it has only one
> outcome - and furthermore I think it's against C++ type safety - and even
> furthermore I think currently it's only purpose is obfuscation contests or
> creating hard to diagnose bugs as the case I've shown above.
> --
> Std-Proposals mailing list
> Std-Proposals_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
>

Received on 2023-07-23 11:13:53