VS 2019中__cplusplus默认显示199711解决方案

VS 2019中__cplusplus默认显示199711解决方案

解决方案

第一步:项目 -> 属性
VS 2019中__cplusplus默认显示199711解决方案_第1张图片
第二步:C/C++ -> 命令行
VS 2019中__cplusplus默认显示199711解决方案_第2张图片
第三步:在其他选项中输入/Zc:__cplusplus -> 应用 -> 重新编译即可
VS 2019中__cplusplus默认显示199711解决方案_第3张图片

/Zc:__cplusplus 

造成原因

这涉及一个历史遗留的难题,现今已经在一定程度上迎来了"部分解决"。所谓的"部分解决"是指在默认情况下,Visual Studio 编译器总是会将预处理器宏__cplusplus 的返回值设置为"199711L"。只有在启用了 /Zc:__cplusplus 编译选项后,__cplusplus 宏才会展示正确的值。

或许你会疑惑,为什么不直接将__cplusplus 的值修改为正确的呢?实际上,微软发现这样做可能会引发大量的错误。因此,他们不得不暂时采取现有的解决方案,即依旧维持现状。

这个问题的背后牵扯复杂的历史原因。当初制定这些标准的时候,可能没有考虑到未来会出现这样的情况。而且,软件生态系统已经在当前的设定下运行和发展了很长一段时间,突然改变可能会带来严重的不稳定性。

综上所述,尽管这个问题并没有得到完全的解决,但微软不得不在权衡之后选择了一种折中的方式来处理。或许随着时间的推移,随着更好的解决方案的出现,这个问题最终会得到更彻底的解决。

引用
https://blog.csdn.net/iceboy314159/article/details/101038217

你可能感兴趣的:(C++,c++,visual,studio)