/Zc:__cplusplus (Povolit aktualizované __cplusplus makro)

Možnost /Zc:__cplusplus kompilátoru umožňuje, aby makro preprocesoru __cplusplus hlásilo aktualizovanou hodnotu pro podporu nedávných jazykových standardů C++. Ve výchozím nastavení sada Visual Studio vždy vrátí hodnotu 199711L makra preprocesoru __cplusplus .

Syntaxe

/Zc:__cplusplus[-]

Poznámky

Makro preprocesoru __cplusplus se běžně používá k vytváření sestav podpory pro konkrétní verzi standardu C++. Vzhledem k tomu, že se zdá, že hodně existujícího kódu závisí na hodnotě tohoto porovnávání 199711Lmaker , kompilátor nezmění hodnotu makra, pokud se explicitně nepřihlásíte pomocí možnosti kompilátoru /Zc:__cplusplus . Tato /Zc:__cplusplus možnost je dostupná od sady Visual Studio 2017 verze 15.7 a je ve výchozím nastavení vypnutá. V dřívějších verzích sady Visual Studio a ve výchozím nastavení nebo pokud /Zc:__cplusplus- je zadána, vrátí Visual Studio hodnotu 199711L pro makro preprocesoru __cplusplus . Tato /permissive- možnost nepovoluje /Zc:__cplusplus.

/Zc:__cplusplus Pokud je tato možnost povolená, hodnota hlášená __cplusplus makrem závisí na /std nastavení možností verze. V této tabulce jsou uvedeny možné hodnoty makra:

/Zc:__cplusplus možnost /std možnost __cplusplus hodnota
Zc:__cplusplus /std:c++14 (výchozí) 201402L
Zc:__cplusplus /std:c++17 201703L
Zc:__cplusplus /std:c++20 202002L
Zc:__cplusplus /std:c++latest zobrazit text
Zc:__cplusplus- (zakázáno) Libovolná hodnota 199711L
Neurčeno Libovolná hodnota 199711L

Kompilátor nepodporuje možnosti standardů pro C++98, C++03 nebo C++11. Tato /std:c++20 možnost je dostupná od sady Visual Studio 2019 verze 16.11. Hodnota __cplusplus s /std:c++latest možností závisí na verzi sady Visual Studio. Vždy je to alespoň jedna vyšší než nejvyšší podporovaná standardní hodnota podporovaná __cplusplus vaší verzí sady Visual Studio.

Pokud chcete jemně odstupňovanou detekci změn sady nástrojů kompilátoru, použijte _MSC_VER předdefinované makro. Hodnota tohoto předdefinovaného makra se zvýší pro každou aktualizaci sady nástrojů v sadě Visual Studio 2017 a novějších verzích. Předdefinované _MSVC_LANG makro hlásí standardní verzi bez ohledu na /Zc:__cplusplus to, jestli je tato možnost povolená nebo zakázaná. Pokud /Zc:__cplusplus je povoleno, __cplusplus má stejnou hodnotu jako _MSVC_LANG.

Nastavení této možnosti kompilátoru v sadě Visual Studio

  1. Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.

  2. Vyberte stránku vlastností příkazového řádku C/C++>Vlastnosti>konfigurace.

  3. Přidejte /Zc:__cplusplus nebo /Zc:__cplusplus- do podokna Další možnosti:

Viz také

/Zc (Shoda)
/std (Určení standardní verze jazyka)
Předdefinovaná makra