/Zc:__cplusplus
(Włącz zaktualizowane __cplusplus
makro)
Opcja /Zc:__cplusplus
kompilatora umożliwia __cplusplus
makro preprocesora raportowanie zaktualizowanej wartości dla obsługi najnowszych standardów języka C++. Domyślnie program Visual Studio zawsze zwraca wartość 199711L
makra __cplusplus
preprocesora.
Składnia
/Zc:__cplusplus
[-
]
Uwagi
__cplusplus
Makro preprocesora jest często używane do raportowania obsługi określonej wersji standardu C++. Ponieważ wydaje się, że wiele istniejących kodu zależy od wartości tego makra pasującego 199711L
, kompilator nie zmienia wartości makra, chyba że jawnie wyrazisz zgodę na użycie opcji kompilatora /Zc:__cplusplus
. Opcja /Zc:__cplusplus
jest dostępna od wersji 15.7 programu Visual Studio 2017 i jest domyślnie wyłączona. We wcześniejszych wersjach programu Visual Studio i domyślnie lub jeśli /Zc:__cplusplus-
jest określona, program Visual Studio zwraca wartość 199711L
makra __cplusplus
preprocesora. Opcja /permissive-
nie włącza /Zc:__cplusplus
opcji .
Po włączeniu /Zc:__cplusplus
opcji wartość zgłoszona przez __cplusplus
makro zależy /std
od ustawienia opcji wersji. W tej tabeli przedstawiono możliwe wartości makra:
/Zc:__cplusplus opcja |
/std opcja |
__cplusplus wartość |
---|---|---|
Zc:__cplusplus |
/std:c++14 (domyślne) |
201402L |
Zc:__cplusplus |
/std:c++17 |
201703L |
Zc:__cplusplus |
/std:c++20 |
202002L |
Zc:__cplusplus |
/std:c++latest |
zobacz tekst |
Zc:__cplusplus- (wyłączone) |
Dowolna wartość | 199711L |
Nieokreślona | Dowolna wartość | 199711L |
Kompilator nie obsługuje opcji standardów dla języków C++98, C++03 ani C++11. Ta /std:c++20
opcja jest dostępna od wersji 16.11 programu Visual Studio 2019. Wartość __cplusplus
z opcją /std:c++latest
zależy od wersji programu Visual Studio. Zawsze jest to co najmniej jedna wyższa niż najwyższa obsługiwana wartość standardowa obsługiwana __cplusplus
przez wersję programu Visual Studio.
Aby uzyskać bardziej szczegółowe wykrywanie zmian w zestawie narzędzi kompilatora, użyj wstępnie zdefiniowanego _MSC_VER
makra. Wartość tego wbudowanego makra jest zwiększana dla każdej aktualizacji zestawu narzędzi w programie Visual Studio 2017 i nowszych wersjach. Wstępnie _MSVC_LANG
zdefiniowane makro zgłasza wersję standardową niezależnie od tego, czy /Zc:__cplusplus
opcja jest włączona, czy wyłączona. Po /Zc:__cplusplus
włączeniu __cplusplus
parametru ma taką samą wartość jak _MSVC_LANG
.
Aby ustawić tę opcję kompilatora w programie Visual Studio
Otwórz okno dialogowe Strony właściwości projektu. Aby uzyskać szczegółowe informacje, zobacz Set C++ compiler and build properties in Visual Studio (Ustawianie właściwości kompilatora języka C++ i kompilowania w programie Visual Studio).
Wybierz stronę Właściwości>konfiguracji C/C++>Wiersza polecenia.
Dodaj
/Zc:__cplusplus
lub/Zc:__cplusplus-
do okienka Dodatkowe opcje: .
Zobacz też
/Zc
(Zgodność)
/std
(Określ wersję standardową języka)
Wstępnie zdefiniowane makra