Меня зовут Ксавье Жувено, и в этом небольшом посте мы увидим, как использовать альтернативные операторы в 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"; }
Спасибо всем за прочтение этой статьи, и до моей следующей статьи, хорошего дня 😉
Интересные ссылки
- Документация альтернативных операторов
- [Документация по разрешительным флагам][https://docs.microsoft.com/fr-fr/cpp/build/reference/permissive-standards-conformance?view=msvc-160]
- Ключевые слова С++
- Примеры первого и второго богострела
- H2G2
Первоначально опубликовано на http://10xlearner.com 4 ноября 2020 г.