/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í 199711L
maker , 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
Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.
Vyberte stránku vlastností příkazového řádku C/C++>Vlastnosti>konfigurace.
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