函数参数列表中的auto表示模板参数

8

在安德鲁·萨顿在cppcon演讲中(大约13分钟),他提到你“很快”就可以编写

auto func(auto a, auto b) { ... }

将被视为

template <typename T, typename U> auto func(T a, U b) { ... }

就像在C++14中为通用lambda引入的那样。

  1. 这个特性叫什么名字?

  2. 这是Concepts Lite的一部分,还是单独提出的建议?

  3. 如果确实提出了,显然这并没有被纳入C++14,如果有人知道,反对意见是什么?


2
你可以将此写成GCC扩展。实时示例 - user3920237
1个回答

6
  1. 缩写函数模板
  2. 是的,它是概念Lite的一部分
  3. 它在概念TS中,该标准远未准备好用于C++14。

请阅读概念TS的最新草案了解更多信息。


1
感谢您的快速回复。虽然我必须说,“通用函数”这个名称似乎有点太普通了…… - Tristan Brindle
@TristanBrindle,它曾经是“通用函数”,因为它是“通用lambda”的扩展。我忘记了TS的更近版本已经改用“缩写函数”这个名称。可能正是出于你所指定的原因。 - Casey
@TristanBrindle...现在它被称为缩写函数模板 - Casey
[tag:abbreviated-function-template] 不能作为标签,最多只能有25个字符 :( 或许可以使用 [tag:abbreviated-template]。 - M.M

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