gpt4 book ai didi

c++ - 我可以定义一个没有 auto 的 C++ lambda 函数吗?

转载 作者:可可西里 更新时间:2023-11-01 16:32:25 24 4
gpt4 key购买 nike

我之前有很多 C# 经验,但我是 C++ 的新手。当我像以前一样尝试使用 lambda 时,我已经看到了这个问题。

例如:

auto compare = [] (int i1, int i2) { return i1*2 > i2; }

有什么方法可以定义特定类型的 lambda,而不是自动推导?

我问这个是因为我想为我的类(class)定义一个通用的 lambda。这个 lambada 将在多个地方使用,所以我不想多次定义它们。但是,'auto' 只能用于静态成员,而另一方面,我想访问 lambda 中的非静态字段。

最佳答案

您使用 std::function ,它可以 glob 任何 lambda 或函数指针。

std::function< bool(int, int) > myFunc = []( int x, int y ){ return x > y; };

参见 C++ Reference .

关于c++ - 我可以定义一个没有 auto 的 C++ lambda 函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26541024/

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