VS版本对应C++版本支持情况

210 阅读3分钟

VS版本对应C++版本支持情况

Visual Studio 各版本对应的 C++ 标准支持情况表,包括主要年份版本及对 C++ 标准的支持

Visual Studio 各版本对应的 C++ 标准支持情况表,包括主要年份版本及对 C++ 标准的支持程度。

VS 年份版本主版本号C++98C++03C++11C++14C++17C++20备注
VS 6.06.0经典老版本,支持旧标准
VS 20058.0部分模板改进
VS 20089.0部分 TR1 特性支持
VS 201010.0部分Lambda 支持、自动类型推断(auto)有限
VS 201211.0✅ 部分改进 lambda、智能指针、右值引用支持有限
VS 201312.0✅ 部分部分完善 C++11 支持,初步 C++14 支持(如 constexpr)
VS 201514.0✅ 完全部分C++11 完整支持,C++14 新特性部分支持
VS 201715.0✅ 完全✅ 部分部分C++14 基本完整,C++17 新特性部分支持
VS 201916.0✅ 完全✅ 完全部分部分C++17 基本完整,C++20 部分特性(如 Concepts)预览
VS 202217.0✅ 完全✅ 完全✅ 完全部分C++20 特性大部分支持,C++23 预览支持

✅ = 支持❌ = 不支持“部分” = 仅支持部分特性


Visual Studio 年份版本 → C++ 标准支持时间线图的文字/图形化示意版,便于直观查看:

C++ 标准
┌─────────────┬─────────────────────────────────────────────┐
 VS 版本      支持情况                                     
├─────────────┼─────────────────────────────────────────────┤
 VS 6.0       C++98/03                                     
 VS 2005      C++98/03                                     
 VS 2008      C++98/03                                     
 VS 2010      C++98/03   C++11 部分 Λ, auto               
 VS 2012      C++11 部分 ✅, 智能指针, Lambda 部分         
 VS 2013      C++11  完整, C++14 部分                   
 VS 2015      C++11  完整, C++14 部分                   
 VS 2017      C++11/14 ✅, C++17 部分                      
 VS 2019      C++11/14 ✅, C++17  完整, C++20 部分预览    
 VS 2022      C++11/14/17 ✅, C++20  大部分, C++23 预览  
└─────────────┴─────────────────────────────────────────────┘

或者用时间线形式(用年份横轴,C++ 标准纵轴):

C++ 标准
C++23 
C++20                        ██████ VS2022, 部分 VS2019
C++17              ██████ VS2017 ██████ VS2019 ██████ VS2022
C++14        ████ VS2013 ██████ VS2015 ██████ VS2017 ██████ VS2019/22
C++11   ███ VS2010 部分 ██████ VS2012 ██████ VS2013/15/17/19/22
C++03  ██████ VS6/2005/2008/2010/2012/2013/2015/2017/2019/2022
C++98  ██████ VS6/2005/2008/2010/2012/2013/2015/2017/2019/2022
       └────┬────┬────┬────┬────┬────┬────┬────┬────┬────┘
          6.0 2005 2008 2010 2012 2013 2015 2017 2019 2022
                  VS年份版本

💡 注解:

  • • 横轴是 VS 年份版本,纵轴是 C++ 标准。
  • • █ 表示该 VS 版本对该标准的支持情况(部分或完整)。