【发布时间】:2018-10-30 02:15:46
【问题描述】:
在C++20中,在Familiar template syntax for generic lambdas提案下,以下代码正确推导出类型T:
auto lamTest = []<typename T>(std::initializer_list<T> const & l)
{
std::vector<T> v{ l };
for (auto && e : v)
std::cout << e << " ";
};
lamTest( { 1,2,3 } );
C++17(或14)可以做这种模式推演吗?
注意:我专门询问 lambda 表达式。
【问题讨论】:
-
好的,为什么要投反对票?
-
我没有投反对票,但在我看来,这个问题并没有显示出任何研究成果,而且它显然没有用。
-
@cpplearner,实际上对此进行了相当多的研究,但一无所获。在 cppreference.com 和其他网站上查看。在我发布之后,我确实在上述引用的论文中找到了某种答案。但这对于似乎是一个常见问题的一个相当模糊的来源。事实上,这篇论文概述了它的普遍性。至于它不是很有用,如果你广泛使用泛型 lambda 并且没有访问权限或无法使用 C++20 编译器,它会非常有用。
标签: c++ lambda c++17 type-deduction c++20