Меня зовут Ксавье Жувено, и в этом небольшом посте мы увидим, как использовать альтернативные операторы в C++ с Visual Studio.

Самореклама: Другие статьи вы можете найти на моем сайте 😉

Проблемный

В C++, как вы, возможно, уже знаете, есть первичные операторы, доступные нам с самого начала C++, поскольку они унаследованы от языка C. Например, оператор && для условия и или оператор || для условия или.

Но нам также доступен набор альтернативных операторов, которые могут быть гораздо более удобными, чем основные операторы. Действительно, вместо того, чтобы дважды использовать символ & для оператора and, язык C++ позволяет нам с этими альтернативными операторами напрямую вводить слово and. То же самое касается основного оператора||, который можно заменить словом or.

Если вы хотите найти весь список альтернативных операторов, вы можете перейти по этой ссылке на документацию по C++.

Каким бы крутым ни казался C++, больше похожий на английский и более выразительный по своему замыслу, эти альтернативные операторы, к сожалению, используются не так часто, как следовало бы. В самом деле, если вы пойдете на какой-нибудь курс по C++, вы обнаружите, что все до сих пор преподают операторы && и ||, хотя они могли бы непосредственно представить операторы and и or! 😠 Ну... Я отвлекся, это не тема этого поста в блоге 😆

Возвращаясь к альтернативным операторам, к сожалению, они не интегрируются автоматически на каждый основной компьютер 😢 С gcc или clang нет проблем, альтернативные операторы распознаются напрямую, но, к сожалению, в Visual Studio (с компилятором msvc) они не интегрируются. автоматически распознается. Вы можете увидеть на этом примере Godbolt ошибку компиляции, вызванную в Visual Studio.

Но мы собираемся сделать это возможным 😉

Решение

Чтобы Visual Studio правильно интерпретировала C++ операторы альтернатив, нам нужно указать конкретную опцию с именем permissive. Чтобы передать его в проект Visual Studio, вам нужно сделать это так:

/permissive-

И с этой опцией вы, наконец, сможете заставить работать наш пример стрелы бога! 😄

Вы можете заметить, что эта опция работает начиная с Visual Studio 2017 и начиная с «Visual Studio 2017 версии 15.5», она добавлена ​​во все проекты по умолчанию согласно документации.

Просто такой код поймет весь основной компилятор 😉

if(question == "The Ultimate Question of Life, the Universe, and Everything" and answer == 42) { return "H2G2"; }

Спасибо всем за прочтение этой статьи, и до моей следующей статьи, хорошего дня 😉

Интересные ссылки

Первоначально опубликовано на http://10xlearner.com 4 ноября 2020 г.