__cplusplus显然没有在Visual Studio 2022中正确设置为c++ 17?



我的代码有以下测试,以保护仅在c++ 11或更新版本中工作的代码。

尽管cl/std:c++17调用,但它的值为0。

#if __cplusplus >= 201103

我在Windows 11上的Microsoft Visual Studio Community 2022(64位)中看到了这个问题。

右键单击项目,使用/Zc:__cplusplus设置属性—>C/c++—>命令行—>附加选项

我最可能的猜测是他们制定了这个奇怪的错误特性来服务于一个"bug报告"。当他们增加版本号时,用==测试原始值的代码失败了。

更多信息请访问https://learn.microsoft.com/en-us/cpp/build/reference/zc-cplusplus?view=msvc-170

最新更新