auto 作为函数参数
auto as function argument
在 C++14 中,这样的事情是合法的(lambdas
):-
auto l = [](auto x, auto y) { return x+y; };
但是这样的事情仍然不合法:-
auto sum (auto x, auto y)
{
return x+y;
}
我的好奇心是为什么没有将第二个添加到标准中(尽管它应该有望添加到 C++17 中)?第二个的优点和缺点是什么?
它没有被添加,因为添加是另一回事,而且时间不是无限的。我们不能指望一次性添加所有有用的增强功能,对吗?如您所见,它将在 C++17 中。
它是未及时为 C++14 准备好的 TS 的一部分。
它将等同于
template <typename T, typename U>
auto sum(T x, U y) { return x+y }
唯一的优点就是稍微短了点。其他都一样。
在 C++14 中,这样的事情是合法的(lambdas
):-
auto l = [](auto x, auto y) { return x+y; };
但是这样的事情仍然不合法:-
auto sum (auto x, auto y)
{
return x+y;
}
我的好奇心是为什么没有将第二个添加到标准中(尽管它应该有望添加到 C++17 中)?第二个的优点和缺点是什么?
它没有被添加,因为添加是另一回事,而且时间不是无限的。我们不能指望一次性添加所有有用的增强功能,对吗?如您所见,它将在 C++17 中。
它是未及时为 C++14 准备好的 TS 的一部分。
它将等同于
template <typename T, typename U>
auto sum(T x, U y) { return x+y }
唯一的优点就是稍微短了点。其他都一样。