I do not understand the (continued) discussion about switch.

 

There are active proposals out there for a new facility.

Yes, they are not called switch.

No, you won't get the new facilities and an upgraded switch both.

 

It will not make a difference if we convince people how switch should be one way or the other, if switch stays as it is.
 

-----Ursprüngliche Nachricht-----
Von: Jeremy Rifkin via Std-Proposals <std-proposals@lists.isocpp.org>
Gesendet: Do 22.05.2025 22:08
Betreff: Re: [std-proposals] A draft for modern switch
An: std-proposals@lists.isocpp.org;
CC: Jeremy Rifkin <rifkin.jer@gmail.com>;
> Wow, if you believe that C++ must care
> about performance, then you may want
> to consider supporting a switch that
> tests strings!
 
There is no optimization that is unique to switch. Compilers optimize if-else chains just fine.
 
Jeremy
 

On Thu, May 22, 2025 at 1:45 PM Zhihao Yuan via Std-Proposals <std-proposals@lists.isocpp.org> wrote:
On Thursday, May 22nd, 2025 at 10:53 AM, Nikolay Mihaylov via Std-Proposals <std-proposals@lists.isocpp.org> wrote:
My 5 cents again :)

I am strongly against modifying switch in this way :)
C++ is C and C++, is not Javascript or PHP where nobody cares about performance.
 
Wow, if you believe that C++ must care
about performance, then you may want
to consider supporting a switch​ that
tests strings! What a compiler can do to
optimize a pattern matching that tests
strings but simulates fall-through between
the cases?
 
--
Zhihao Yuan, ID lichray
The best way to predict the future is to invent it.
_______________________________________________
 
 
This is exactly why match were proposed.

On Wed, May 21, 2025 at 4:56 PM Jason McKesson via Std-Proposals <std-proposals@lists.isocpp.org> wrote:
On Wed, May 21, 2025 at 3:34 AM Filip via Std-Proposals
<std-proposals@lists.isocpp.org> wrote:
>
> I agree, it seems like a better idea to have switch in non constexpr context available, to act like a nicer option acting like if else.
>
> Maybe I’m missing the key functionality of match, but it looks like a different syntax for something that we already have.
>
> I agree that assignment with match looks like a good idea, why wouldn’t we add that to the switch statement?

Because we're getting pattern matching anyway, which is a superset of
what switch can do. There's no point in improving a legacy feature
when it is simultaneously being rendered obsolete.

> string b = “hello”;
> auto var = switch(b){
> case “hi”: { return 42; }
> case “hello”: { return 43; }
> default: { return 0; } // probably should be mandatory
> };

```
b match {
"hi" => return 42;
"hello" => return 43;
_ => return 0;
}
```
--
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
-- 
 Std-Proposals mailing list
 Std-Proposals@lists.isocpp.org
 https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals