C++ Logo

std-proposals

Advanced search

Re: [std-proposals] A draft for modern switch

From: Sebastian Wittmeier <wittmeier_at_[hidden]>
Date: Thu, 22 May 2025 23:24:12 +0200
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_at_[hidden]> Gesendet:Do 22.05.2025 22:08 Betreff:Re: [std-proposals] A draft for modern switch An:std-proposals_at_[hidden]; CC:Jeremy Rifkin <rifkin.jer_at_[hidden]>; > 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_at_[hidden] <mailto:std-proposals_at_[hidden]> > wrote: On Thursday, May 22nd, 2025 at 10:53 AM, Nikolay Mihaylov via Std-Proposals <std-proposals_at_[hidden] <mailto:std-proposals_at_[hidden]> > 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_at_[hidden] <mailto:std-proposals_at_[hidden]> > wrote: On Wed, May 21, 2025 at 3:34 AM Filip via Std-Proposals <std-proposals_at_[hidden] <mailto:std-proposals_at_[hidden]> > 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_at_[hidden] <mailto:Std-Proposals_at_[hidden]> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals -- Std-Proposals mailing list Std-Proposals_at_[hidden] <mailto: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-05-22 21:31:46