在C ++ 14中,这样的东西是合法的(对于lambdas
): -
auto l = [](auto x, auto y) { return x+y; };
但是这样的事情仍然不合法: -
auto sum (auto x, auto y)
{
return x+y;
}
我的好奇心是为什么不是第二个添加到标准中的原因(虽然它应该在C ++ 17中有希望添加)?什么是专业人士和第二个缺点?
答案 0 :(得分:6)
没有添加它,因为它是另一个添加的东西,时间不是无限的。我们不能指望一次性添加所有有用的增强功能,我们可以吗?如您所知,它将在C ++ 17中。
答案 1 :(得分:3)
它是TS的一部分,在C ++ 14之前还没有准备好。
它将等同于
template <typename T, typename U>
auto sum(T x, U y) { return x+y }
唯一的专家是它稍短。其他一切都是一样的。