Требуется задать переменную, ограниченную областью видимости условного оператора 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) { ... }
}
Новый синтаксис имитирует именно такой подход.
Комментариев нет:
Отправить комментарий