gcc 中的 Concepts-Lite(带有 TS 链接)

Concepts-Lite in gcc (with links to TS)

正如 to 所强调的那样,gcc 现在支持 concepts-lite 从其 svn 主干构建。

同样的问题链接到最近的 TS,N4377编辑 - 答案有更新的 TS。

可以找到标记为 N3580 的有用论文 - 这是 2013 年的论文,作者是 Andrew Sutton、Bjarne Stroustrup 和 Gabriel Dos Reis。

可以找到标记为 N4434 的 N4377 调整列表。这给出了对 N4377 论文的 3 个建议修改,并列为它的回复点 Walter E. Brown。

这些 papers/Technical 规格相似,但在每种情况下都有各种小的变化。

是否有一些简单的方法可以发现 gcc 目前实现了什么?或者确实有实施的计划?

作为附带问题:ConceptClang 或某个类似名称的项目是否与 c++1z 概念相关? 2015 年 5 月的 mailing list post 收集了一些想法,特别是:

Larisse may have some work done for the concepts ts, in addition to her C++0x efforts.

没有对该主题进行进一步回复。

据我了解,GCC 维护者计划实施即将发布的最终 TS 中指定的概念:N4549 C++ Extensions for Concepts. Most of that specification is implemented in GCC, with the notable exception of "generalized auto deduction" which is necessary to compile syntax like std::pair<auto, auto> foo = std::make_pair(x, y);. The implementation is still very rough - a quick search for open bugs with "[concepts]" in the title has 38 hits,因此具体实施的内容和有效的内容每周都会发生变化。

Is ConceptClang or some similarly named project related to the c++1z concepts?

ConceptClang 是(曾经是?)C++0x 概念的实现,我相信它已经死了一段时间了。在过去的几个月里,有一些人开始考虑在 clang 中实现 Concepts TS,他们只提交了一些补丁来识别 concept 关键字并解析 concept 的语法函数和变量声明。