Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Параметр /Zc:__cplusplus компилятора позволяет макросу __cplusplus препроцессора сообщать обновленное значение для недавней поддержки языковых стандартов C++. По умолчанию Visual Studio всегда возвращает значение 199711L макроса __cplusplus препроцессора.
Синтаксис
/Zc:__cplusplus[-]
Замечания
Макрос __cplusplus препроцессора обычно используется для создания отчетов о поддержке определенной версии стандарта C++. Так как многие существующие коды, как представляется, зависят от значения этого макроса 199711L, компилятор не изменяет значение макроса, если вы явно не согласитесь с помощью параметра компилятора /Zc:__cplusplus . Этот /Zc:__cplusplus параметр доступен начиная с Visual Studio 2017 версии 15.7 и отключен по умолчанию. В более ранних версиях Visual Studio и по умолчанию /Zc:__cplusplus- или при указании Visual Studio возвращает значение 199711L макроса __cplusplus препроцессора. Параметр /permissive- не включает /Zc:__cplusplus.
/Zc:__cplusplus Если параметр включен, значение, указанное макросом__cplusplus, зависит от /std параметра версии. В таблице ниже представлены возможные значения макроса.
/Zc:__cplusplus выбор |
/std выбор |
Значение __cplusplus |
|---|---|---|
Zc:__cplusplus |
/std:c++14 (по умолчанию) |
201402L |
Zc:__cplusplus |
/std:c++17 |
201703L |
Zc:__cplusplus |
/std:c++20 |
202002L |
Zc:__cplusplus |
/std:c++latest |
см. текст |
Zc:__cplusplus- (отключено) |
Любое значение | 199711L |
| Не указано | Любое значение | 199711L |
Компилятор не поддерживает параметры стандартов для C++98, C++03 или C++11. Этот /std:c++20 параметр доступен начиная с Visual Studio 2019 версии 16.11. Значение __cplusplus параметра /std:c++latest зависит от версии Visual Studio. Это всегда по крайней мере одно значение выше, чем максимально поддерживаемое стандартное значение, поддерживаемое __cplusplus версией Visual Studio.
Для более точного обнаружения изменений в наборе инструментов компилятора используйте _MSC_VER предопределенный макрос. Значение этого встроенного макроса увеличивается при каждом обновлении набора средств в Visual Studio 2017 и более поздних версий. Предопределенный _MSVC_LANG макрос сообщает стандартную версию, /Zc:__cplusplus включена ли параметр или отключена. Если /Zc:__cplusplus включена, имеет то же значение, __cplusplus что _MSVC_LANGи .
Установка параметра компилятора в Visual Studio
Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.
Перейдите на страницу свойств Свойства конфигурации>C/C++>Командная строка.
Добавьте
/Zc:__cplusplusили/Zc:__cplusplus-в область "Дополнительные параметры".
См. также
/Zc (Соответствие)
/std (определение стандартной версии языка)
Предустановленные макросы