gpt4 book ai didi

c++ - 如何调用 lambda 模板?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:12:42 25 4
gpt4 key购买 nike

我能够用 gcc 编译以下代码:

template<typename... Pack>
auto func(Pack... x) {
return (x + ...) ;
}

template<typename... Pack>
auto lamd = [](Pack... x) {
return (x + ...) ;
};

我可以用 func(1,2,3) 调用函数模板, 但在使用 lamd(1,2,3) 调用 lambda 时出现错误或 lamd<int>(1,2,3) .

最佳答案

对于 lambda,你可以做到 generic lambda使用 auto

auto lamd = [](auto... x) {
return (x + ...) ;
};

从 C++20 开始,您可以使用显式模板参数列表,但请注意,模板参数列表仍与 lambda 的 operator() 一起使用,就像 auto 参数。例如

auto lamd = []<typename... Pack>(Pack... x) {
return (x + ...) ;
};

然后您可以将其称为lamd(1,2,3)

LIVE

关于c++ - 如何调用 lambda 模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56732722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com