В настоящее время я изучаю C ++ 17 из книги «C ++ 17 от новичка до профессионала».В части контрольных операторов книги мне сказали, что можно объявить переменные, которые будут использоваться в операторе if, внутри круглых скобок оператора if, то есть что-то вроде
if(int a {2}, int b {2}; a<b) {cout << a << endl;}
, когда я попробовал этоиспользуя Code :: Blocks, он сказал мне, что ожидает ')' перед ';'маркер.Однако в книге ничего такого не было.
В VisualStudio мне сообщалось
«языковая функция» для операторов init, если для / switch «требуется флаг компилятора проекта C ++»/ std: C ++ 17 '**
В частности, я пытался запустить приведенный ниже код.
char input;
cin >> input;
if (auto lower{ static_cast<char>(std::tolower(input)) }; lower >= 'a' && lower <= 'z') {
std::cout << "You've entered the letter '" << lower << '\'' << std::endl;
}