Udostępnij za pośrednictwem


/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:__cplusplusopcji .

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

  1. 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).

  2. Wybierz stronę Właściwości>konfiguracji C/C++>Wiersza polecenia.

  3. 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