#viualstudio

vs 2019 c++ 兼容 xp

按照如下步骤安装平台工具集 visual studio 2017 - windows xp(v141_xp)

  • 系统 添加和删除程序
  • 搜索 2019
  • 选择修改程序, 进入 visual studio installer
  • 修改单个组件搜索 xp
  • 编译器、生成工具和运行时勾选 对 vs2017(v141)工具的 c++ windows xp支持

vs2019 静态链接

属性 c/c++ 代码生成运行库

展示了几种链接方式

  • 多线程(/mt) release 静态链接
  • 多线程调试(/mtd)
  • 多线程DLL(/md)
  • 多线程DLL调试(/mdd)

vs2019 c++ 语言版本

属性 c/c++ 语言c++语言标准

可以使用宏 __cpluscplus 输出目前正在使用的 c++ 版本, 在 vs 中该宏的输出和正在使用的 c++ 版本及 /Zc:__plusplus 开关有关。

/Zc:__cplusplus/std:c++__cplusplus
Zc:__cplusplusstd:c++14默认20142L
Zc:__cplusplusstd:c++17201703L
Zc:__cplusplusstd:c++latest201704L
禁用任何值199711L
未指定任何值199711L

不支持 98, 03, 11 的切换。_MSC_VER _MSC_LANG

属性 c/c++ 语言命令行其他选项

可以修改 zc 和 std 开关

C++ 版本描述
C++98 (ISO/IEC 14882:1998)C++ 的第一个版本于 1998 年 10 月发布。
C++03 (ISO/IEC 14882:2003)在这个版本的 C++ 中,值初始化是在 2003 年 2 月引入的。
C++11它于 2011 年 8 月发布。这个 C++ 修订版引入了 Lambda 表达式、委托构造函数、统一初始化语法、自动类型推导、nullptrdecltype、Rvalue References 等
C++14它于 2014 年 8 月发布。此版本中添加的功能包括多态 lambda、数字分隔符、通用 lambda 捕获、变量模板、二进制整数文字、引用字符串等。
C++17它于 2017 年 12 月发布。它引入了折叠表达式、十六进制浮点文字、u8 字符文字、带有初始化程序的选择语句、内联变量等。
C++20于 2020 年 12 月发布。
标准__cplusplus 输出
C++ 前 C++981
C++98199711L
c++98+tr1这个不能勾选,这个会被标记为 C++98
c++1120103L
c++14201402L
c++17201703L

版本测试程序

#include<iostream>
 
int main() {
    if (__cplusplus == 201703L)
        std::cout << "C++17" << endl;
    else if (__cplusplus == 201402L)
        std::cout << "C++14" << endl;
    else if (__cplusplus == 201103L)
        std::cout << "C++11" << endl;
    else if (__cplusplus == 199711L)
        std::cout << "C++98" << endl;
    else
        std::cout << "pre-standard C++" << endl;
}