Страницы

Поиск по вопросам

пятница, 29 марта 2019 г.

Локальные переменные для условных операторов

Требуется задать переменную, ограниченную областью видимости условного оператора if или switch. Как это можно сделать?


Ответ

В c++17 появилась возможность задавать объявление переменной прямо в условном операторе if или switch. Например:
if (int i = 42; cond) { ... }

switch (SomeType t; var) { ... }
Ключевой момент здесь в том, что ветвление выполняется по cond или var, а не по i или t
До c++17 для этих целей приходилось вводить новый блок через { } и выглядело это не очень красиво:
{ int i = 42; if (cond) { ... } }
Новый синтаксис имитирует именно такой подход.

Комментариев нет:

Отправить комментарий