Преимущества использования init-statement в конструкции switch включают:
- Ограничение области видимости переменной. 35 Она будет видна только внутри блока switch, что предотвращает её смешивание с другими переменными в окружающей области видимости. 15
- Возможность повторного использования одного и того же именованного идентификатора. 1 Это возможно, если компилятор знает, что переменная будет использоваться только в одном блоке switch, и может лучше оптимизировать код. 1
- Помощь в ситуациях, когда нет неявного преобразования в целочисленный или тип перечисления. 2 Синтаксис init-statement может быть полезен, когда нет неявного преобразования в эти типы. 2
Использование init-statement в конструкции switch стало возможным благодаря функции C++17. 12