【问题标题】:Does Visual Studio 2019 v16.3.9 fully support C++20?Visual Studio 2019 v16.3.9 是否完全支持 C++20?
【发布时间】:2020-03-19 04:54:47
【问题描述】:

我搜索了很多,发现了不同的信息,但不幸的是无法理解 Visual Studio 2019 是否完全支持 C++20!

根据我的搜索,有3类信息:

  1. ConceptsModules 分别得到完全支持和部分支持。不支持CouroutinesRanges。此外,Modules 仍处于实验阶段。

  2. 除了Concepts之外没有其他支持。

  3. MSVC 和 CLANG 完全支持所有功能。

我提出这个问题是因为我需要编译一些 C++20 中引入的新特性的示例代码。

注意:VS2019 的当前和新版本(在提出这个问题时)是 16.3.9。

【问题讨论】:

  • 你说需要编译代码,但是你试过了吗?同样根据 MS 本身,不,不完全支持:docs.microsoft.com/en-us/cpp/overview/…
  • @stijn 我没有安装 VS2019 来检查是否支持 C++20。不幸的是,我无法访问它。
  • C++20 甚至还没有最终确定。为什么还有编译器完全支持它?
  • 这可能也很有趣:C++ compiler support.
  • @dav:我在回应 Tanveer 的评论,他似乎认为编译器在即将到来的语言标准成为国际标准之前实现其功能在某种程度上是不合理的。这种意见是不合理的。甚至有可能,任何给定的编译器都实现了 OP 所需的 all C++20 功能。但由于他们对他们实际需要的功能集保密,所以这个问题的答案只具有学术价值。

标签: c++ visual-studio visual-studio-2019 c++20


【解决方案1】:

Visual Studio 2019 v16.3.9 部分支持 C++20。

通过将 MSVC 编译器选项从 /std:c++17 更改为 /std:c++latest,我们可以使用最新实现的功能。

根据问题,收集到的信息类型 1 或 2 更接近正确答案。

【讨论】:

    【解决方案2】:

    msvc 部分支持概念,就像there 说的那样

    Currently, MSVC doesn't support requires-expressions everywhere; they only work in concept definitions and in requires-clauses
    

    【讨论】:

      猜你喜欢
      • 2018-07-14
      • 2013-04-30
      • 2020-08-17
      • 2015-10-10
      • 1970-01-01
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多