Visual Studio 2019 v16.3.9是否完全支持C++20?

8
我搜索了很多资料,但很遗憾还是无法确定Visual Studio 2019是否完全支持C++20!
根据我的搜索结果,有三种类型的信息:
1. 全部和部分地支持"Concepts"和"Modules"。没有对"Couroutines"和"Ranges"提供支持。同时, "Modules"仍处于实验阶段。
2. 除了"Concepts"之外,没有任何支持。
3. 在MSVC和CLANG中,所有功能都得到了完全支持。
我提出这个问题是因为我需要编译一些引入 C++20 新特性的示例代码。
注意:在我提问时,当前版本和新版VS2019是16.3.9。

你说你需要编译代码,但你试过了吗?另外根据微软自己的说法,不完全支持:https://learn.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=vs-2019 - stijn
9
C++20 甚至还没有最终确定。为什么任何编译器都会完全支持它呢? - Tanveer Badar
在我看来,clang和gcc是最接近新规范的编译器。根据C++ FAQ,C++20尚未发布,因此没有编译器能够完全支持它。 - Scheff's Cat
2
这也许会很有趣:C++编译器支持 - Scheff's Cat
2
@dav:我是在回应Tanveer的评论,他似乎认为在国际标准确定之前,编译器实现即将到来的语言标准的特性是不合理的。这种观点是不合理的。甚至可能有任何给定的编译器都实现了OP需要的C++20所有特性。但由于他们对实际需要的功能集保密,对这个问题的回答只有学术价值而已。 - IInspectable
显示剩余12条评论
2个回答

9

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

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

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


0

MSVC部分支持概念,就像这里所说的那样。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接