在 C++ 中,'=' 是一种 lambda 表达式的捕获方式,用于在 lambda 函数中捕获外部作用域的所有变量。它表示以值的方式捕获外部作用域的变量,并在 lambda 函数体中使用这些变量的副本。

例如,下面的代码演示了如何使用 '=' 捕获外部作用域的变量:

int main() {
    int x = 10;
    int y = 20;

    auto lambda = [=]() {
        int result = x + y;
        return result;
    };

    int sum = lambda();
    std::cout << "Sum: " << sum << std::endl;

    return 0;
}

在上面的代码中,lambda 函数使用 '=' 来捕获外部作用域的变量 x 和 y。lambda 函数体内部使用了 x 和 y 的副本来计算它们的和,并将结果返回。在 main 函数中,我们创建了一个 lambda 对象并调用它,最后输出结果。

需要注意的是,使用 '=' 捕获外部作用域的变量时,lambda 函数内部不能修改这些变量的值,因为它们被以值的方式捕获,相当于是常量。如果需要修改外部作用域的变量,可以使用 '&' 来以引用的方式捕获。

C++ Lambda 表达式捕获方式:[=]详解

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

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