auto作为函数参数

时间:2016-01-04 14:12:10

标签: c++ function parameter-passing auto

在C ++ 14中,这样的东西是合法的(对于lambdas): -

auto l = [](auto x, auto y) { return x+y; };

但是这样的事情仍然不合法: -

auto sum (auto x, auto y)
{
     return x+y;
}

我的好奇心是为什么不是第二个添加到标准中的原因(虽然它应该在C ++ 17中有希望添加)?什么是专业人士和第二个缺点?

2 个答案:

答案 0 :(得分:6)

没有添加它,因为它是另一个添加的东西,时间不是无限的。我们不能指望一次性添加所有有用的增强功能,我们可以吗?如您所知,它将在C ++ 17中。

答案 1 :(得分:3)

它是TS的一部分,在C ++ 14之前还没有准备好。

它将等同于

template <typename T, typename U>
auto sum(T x, U y) { return x+y }

唯一的专家是它稍短。其他一切都是一样的。