/Zc:__cplusplus
(Включить обновленный __cplusplus
макрос)
Параметр /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
(определение стандартной версии языка)
Предустановленные макросы