【发布时间】:2019-06-07 09:46:22
【问题描述】:
我理解一致性参数,但模板的大多数参数都是类型,所以我觉得既然 lambdas 是定义结构的简洁方式,它可能应该默认为typename/class(你仍然需要写int/size_t/short)。
如果有人不熟悉 C++20 中 lambdas 的变化,这里是示例:
[]<typename T>(const std::vector<T>& v)
{
for(const auto& x : v) { std::cout << x; }
};
我的问题是为什么不:
[]<T>(const std::vector<T>& v)
{
for(const auto& x : v) { std::cout << x; }
};
【问题讨论】:
-
[](const std::vector<auto> &v) { };在 GCC9 中工作,但我不确定这是标准的。我认为 TS 的概念允许这样的语法。
标签: c++ typename c++20 generic-lambda