【发布时间】:2022-01-14 07:23:14
【问题描述】:
我们在 C++20 之前就有通用 lambda,可以编写类似的东西。
auto l = [](auto a, auto b)
{
return a+b;
};
然后 C++20 引入了模板 lambda,我们可以在其中编写类似这样的内容
auto l = []<typename T>(T a, T b)
{
return a+b;
};
或者这个
auto l = []<typename T>(T a, auto b)
{
return a+b;
};
有人能解释一下有什么区别吗?
更具体地说,什么模板 lambdas 可以实现 C++20 之前的泛型 lambdas 无法实现的目标?
【问题讨论】:
-
就像函数模板一样有用。它们可以在类或函数模板的实现中使用
标签: c++ templates lambda c++20