c++ - 为什么 C++14 通用 lambda 需要在参数规范中使用 auto?

标签 c++ lambda c++14

我看Generic lambdas并且无法理解 - 为什么要保留类型声明?为什么不 (x, y)?如果编译器供应商必须支持 (auto a, auto b) 支持简单的 (a, b) 有什么问题吗?

最佳答案

问题是您也可以省略参数的名称。如果编译器发现 (a,b) 并且 ab 也是有效类型,这意味着什么? (a/*dummy_a*/, b/*dummy_b*/) 还是 (auto a, auto b)?由于必须显式键入 auto,它不再有歧义。

关于c++ - 为什么 C++14 通用 lambda 需要在参数规范中使用 auto?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18388120/

相关文章:

C++ 基模板类虚方法没有出现在派生中?

ruby - 忽略 lambda 参数检查

c# - 如何通过 lambda 表达式传递属性?

c++ - `operator delete` 带大小参数和不带大小参数 : which one is chosen when both are available?

c++ - 给定一组类,调用具有匹配方法参数的类

c++ - 为什么 C++11 中仍然需要 "using"指令来从基类中引入在派生类中重载的方法

c++ - 使用 placement new 来更改 reference_wrapper 持有的变量类型是否定义了行为?

c++ - 仅蚕食右值引用的部分资源

java - 使用 Java 8 将 int 数组转换为 long 数组?

c++ - 如何从以 shared_ptr 为键的 unordered_set 中获取基于 raw_ptr 的元素