Thank you for your encouragement. Introducing a new keyword would be a breaking change, so I’m leaning towards a compromise solution. The use of if ! or if not should suffice. I’ve just analyzed the Rails codebase, and the usage of unless is nearly one-fifth that of if. So, while the issues it addresses aren’t as frequent, it can still be widely used.


From: Andrew Tomazos <andrewtomazos@gmail.com>
Sent: Sunday, April 21, 2024 3:53
To: std-proposals@lists.isocpp.org <std-proposals@lists.isocpp.org>
Cc: Yexuan Xiao <bizwen@nykz.org>
Subject: Re: [std-proposals] if !(condition)
 
* In my estimation `unless` is claimable as a full keyword:

    unless (is_pickle())
        put_in_sandwidch();

(There is existing practice in another language, can't remember which one.)

* It's hard to believe, but: `if (!expr)` occurs once in every 60 lines of C++ code, or about 5 times per source file.

That's pretty amazing, I would never have guessed that.

* You are correct that `while(!expr)` is much rarer.  Only 1 in every 5000 lines or so.

* You are also correct that `operator!` overloading is almost non-existent.

-Andrew




On Sun, Apr 21, 2024 at 3:34 AM Yexuan Xiao via Std-Proposals <std-proposals@lists.isocpp.org> wrote:
Firstly, I believe that this particular case in if statements is the most common, so it’s my main focus; secondly, the ‘if not’ construct already exists and is widely used elsewhere, making it more readily acceptable. Therefore, the proposal will focus exclusively on if statements rather than loop statements.

From: Std-Proposals <std-proposals-bounces@lists.isocpp.org> on behalf of Sebastian Wittmeier via Std-Proposals <std-proposals@lists.isocpp.org>
Sent: Sunday, April 21, 2024 1:18
To: std-proposals@lists.isocpp.org <std-proposals@lists.isocpp.org>
Cc: Sebastian Wittmeier <wittmeier@projectalpha.org>
Subject: Re: [std-proposals] if !(condition)
 

I would expect a comment about "while" and "do while" (and possibly "for").

 

Would you propose adding ! there, too, oppose it, leave it neutrally open, invite anybody to write a paper or want to see, how if !() works out? Or is it not possible there?


 

-----Ursprüngliche Nachricht-----
Von: Yexuan Xiao via Std-Proposals <std-proposals@lists.isocpp.org>
Gesendet: Sa 20.04.2024 18:09
Betreff: [std-proposals] if !(condition)
An: std-proposals@lists.isocpp.org <Std-Proposals@lists.isocpp.org>;
CC: Yexuan Xiao <bizwen@nykz.org>;
I've wrote a proposal that suggests allowing the omission of the outermost parentheses to simplify the conditions in if statements:
https://storage.nykz.org/proposals/if-not/
 
Please share your comments.
-- Std-Proposals mailing list Std-Proposals@lists.isocpp.org https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
--
Std-Proposals mailing list
Std-Proposals@lists.isocpp.org
https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals