gpt4 book ai didi

c++ - 返回 lambda 表达式的函数

转载 作者:IT老高 更新时间:2023-10-28 12:01:00 25 4
gpt4 key购买 nike

我想知道是否可以在 C++11 中编写一个返回 lambda 函数的函数。当然,一个问题是如何声明这样的函数。每个 lambda 都有一个类型,但该类型在 C++ 中是不可表达的。我认为这行不通:

auto retFun() -> decltype ([](int x) -> int)
{
return [](int x) { return x; }
}

也不是这样:

int(int) retFun();

我不知道有任何从 lambda 到函数指针等的自动转换。唯一的解决方案是手工制作函数对象并返回它吗?

最佳答案

您不需要手工制作的函数对象,只需使用 std::function,lambda 函数可以转换为:

此示例返回整数恒等函数:

std::function<int (int)> retFun() {
return [](int x) { return x; };
}

关于c++ - 返回 lambda 表达式的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4726768/

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