【发布时间】:2022-01-15 10:12:27
【问题描述】:
我正在使用 Visual Studio 2019 进行开发,并且希望能够根据所选的语言标准(C++20、C++17)有条件地编译我的 C++ 程序等)来自项目属性 -> 常规属性 -> C++ 语言标准。 例如,当我设置它 C++20 时会定义什么,以便我可以将其用作:
#ifdef WHAT_DO_I_PUT_HERE_FOR_C++_20
#else
#ifdef WHAT_DO_I_PUT_HERE_FOR_C++_17
...
【问题讨论】:
-
@jpo38 似乎不适用于条件编译。
-
为什么?看我的回答,它肯定适用于条件编译。
-
@jpo378 _HAS_CXX17 或 _HAS_CXX20 似乎可以工作,但它们是标准的吗?
-
不知道,这可能只能由 Visual Studio 设置。我的回答中提出的
__cplusplus应该适用于所有编译器。
标签: c++ visual-c++ c++17 visual-studio-2019 c++20