可以将lambda表达式赋值给结构体变量的成员变量,例如:

#include <iostream>

struct myStruct {
    int x;
    int y;
    std::function<int(int, int)> add; // 成员变量是一个函数对象
};

int main() {
    myStruct s = {
        1,
        2,
        [](int a, int b) -> int { return a + b; } // lambda表达式作为add成员变量的值
    };

    std::cout << s.add(s.x, s.y) << std::endl; // 输出3

    return 0;
}

在上面的例子中,我们定义了一个结构体myStruct,其中包含了两个整型成员变量xy,以及一个函数对象成员变量add。在main()函数中,我们创建了一个myStruct类型的变量s,并在初始化时使用了一个lambda表达式赋值给了add成员变量。最后,我们调用了s.add(s.x, s.y),输出了3

c++lambda 赋值给结构变量

原文地址: https://www.cveoy.top/t/topic/fEv2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录