我的代码有以下测试,以保护仅在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