【问题标题】:What is the latest C++ standard to target Windows XP with Visual Studio?以 Visual Studio 为目标的 Windows XP 的最新 C++ 标准是什么?
【发布时间】:2021-12-21 09:22:10
【问题描述】:
Visual Studio 2019 似乎对 C++17 有很好的支持。不幸的是,使用它构建的二进制文件似乎需要在目标机器上安装通用 CRT,并且 UCRT 支持的最低操作系统是 Vista。
那么,如果我想构建一个面向 Windows XP 的二进制文件,我必须在 UCRT 之前使用 VS C++ 编译器吗?是 VS 2013,它对 C++11 有一些支持吗?
【问题讨论】:
标签:
c++
visual-studio
visual-c++
windows-xp
crt
【解决方案1】:
支持 Windows XP 的最新工具集是 v141_xp,它是来自 Visual Studio 2017 的 XP 工具集。它具有完整的 C++14 支持,并且 部分 C++17 支持。
它也附带 Visual Studio 2019:
很遗憾,它没有完整的 C++17 和 C++20 支持。
VS2019 的最新更新在 v142 工具集中几乎完全支持 C++20,预计会有更新使其完整,但不支持 XP。 (VS2022 预计会放弃 Vista 并在其 v143 工具集中支持一些 C++23)。
v141_xp 工具集仍然支持 C++14 和部分 C++17。例如,不带字符串参数的static_assert(true); 编译。我认为它部分对应于他们提到 VS 2017 的Conformance table。(比如说,你将拥有std::any,但无法使用shared_mutex,因为它依赖于 Vista SRWLOCK)
另见:How to install build tools for v141_xp for VC 2017?