在C++ 11中,有没有办法模板化lambda函数?或者它本身太具体而无法模板化?
我理解我可以定义一个经典的模板类/仿函数,但问题更像是:语言是否允许模板化lambda函数?
我正在尝试使用具有两个专业化的 lambda,但似乎我做错了什么。我试图在这里搜索,但除了这个之外我什么也没找到:
这对我来说没有太大帮助。请问,您能告诉我应该如何通过我的专业化调用 lambda 表达式吗?我正在使用 Visual Studio 2019 16.9.2(我还无法更新)
auto testLamb = []<typename T, int max = 2>(T data)
{
if constexpr (max == 0)
{
return data;
}
else
{
return data + max;
}
};
int f1 = testLamb<int, 4>(4); // Error C2062 !!
int f2 = testLamb(5); // OK!
Run Code Online (Sandbox Code Playgroud) c++ lambda templates template-specialization visual-studio-2019