我的代码进行了以下测试,以保护仅适用于 C++11 或更高版本的代码。
cl尽管用 调用,但它的计算结果为 0 /std:c++17。
#if __cplusplus >= 201103
Run Code Online (Sandbox Code Playgroud)
我在 Windows 11 上的 Microsoft Visual Studio Community 2022(64 位)中看到了这一点。
右键单击相关项目,然后设置属性-->C/C++-->命令行-->附加选项/Zc:__cplusplus
我最好的猜测是,他们制定了这个奇怪的错误功能来服务“错误报告”,==一旦他们增加版本号,测试原始值的代码就会失败。
有关更多信息,请访问https://learn.microsoft.com/en-us/cpp/build/reference/zc-cplusplus?view=msvc-170