C++ 14引入了通用lambda。浏览相关建议时,我发现了的Faisal Vali,Herb Sutter和Dave Abrahams的N3418
其中第2.2节的标题为:



下面的代码示例包括这样的代码片段

[]<int N>(int (&a)[N]) {}

由于此类内容无法编译(使用gcc,clang和Visual Studio),因此出现了一些问题:
  • 这是一个实现问题吗?
  • 是什么原因阻止了该部分的接受?
  • 最终将通用lambda引入该语言的提案是什么?
  • 最佳答案

    被接受的论文的版本是N3649,我们可以通过转到Evolution Working Group(EWG)Completed Issue 16: N3649, N3560, N3559, N3418 Proposal for Generic (Polymorphic) Lambda Expressions来看到:



    请注意,此引用提案2.12.2为NAD(不是缺陷),并且不会重新打开它们。 N3560与作为主要提案的N3418分离,而2.1中的提案N3560为:



    该纸笔记提案2.1被认为是有争议的:



    从文件N3560的引用中我们可以看出N3649不包含此建议:



    最终认为auto是足够的,这与说该提案是NAD一致,这意味着它试图解决的问题并不是真正的问题。

    10-08 14:51