Date: Thu, 22 May 2025 18:45:28 +0000
On Thursday, May 22nd, 2025 at 10:53 AM, Nikolay Mihaylov via Std-Proposals <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?
> 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]> wrote: > > > On Wed, May 21, 2025 at 3:34 AM Filip via Std-Proposals > > <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] > > https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
Received on 2025-05-22 18:45:40