Потому что у тебя нет фигурных скобок в кейсах
У тебя половина брейков не сработает
разве они необходимы?
те, что в кейсах? Почему?
Если в кейсе больше одной строки - да. Потому что если скобок нет, это будет однострочное выражение, а дальше игнор. Как в случае с if без скобок.
но ведь везде, где я вижу свитчи, там как раз двоеточие перед несколькими выражениями стоит
Двоеточие у тебя в любом случае будет. Только надо после него скобки. switch val { case A: { ..... } }
получается, после двоеточия идет одно выражение, и все последующие уже не относятся к кейсу? Или как это работает?
Проведу аналогию с if. Проще представить if без скобок не так if (cond) foo(); А вот так if (cond) foo(); Так понятней? С кейсами то же самое.
Да, так. Что будет - я не уверен. Но я уверен, что точно не будет. Не будет работать так, как ты задумал. Поэтому оберни кейсы в фигурные скобки
На первом варианте можно поставить breakpoint на втором нет, я предпочитаю первое, и формате так настраиваю. К тому же при длинном условии, вообще не видно, что будет происходить
ну, вообще-то, работает как раз так, как я и задумал разве что ивенты мышки почему-то только для фиксированной длины левой части терминала репортятся
Это пример для наглядности. На деле лучше вообще ифы без скобок не писать, это во многих best practices описано
Что? https://godbolt.org/z/xse95Tedc
Обсуждают сегодня