Разница между обычным оператором switch и его современной формой с инициализацией переменной заключается в том, что в обычной форме оператор switch передаёт управление непосредственно в выполняемый оператор в теле, минуя все строки, содержащие инициализации. 7
Современная форма с инициализацией переменной, поддерживаемая начиная со стандарта C++17, позволяет определять переменную в конструкции switch для различных промежуточных вычислений. 3 При этом переменная доступна только в рамках этой конструкции switch. 3
Таким образом, основное различие заключается в том, что обычный оператор switch передаёт управление, а современная форма с инициализацией переменной позволяет определять и работать с переменными внутри оператора switch.
Например, чтобы инициализировать переменную в операторе switch, её нужно объявить в новой области видимости этой конструкции. 45