是的,C++ lambda表達式可以捕獲全局變量。在lambda表達式中,可以通過捕獲列表來指定需要捕獲的變量。全局變量屬于全局作用域,在lambda表達式中可以通過捕獲列表來捕獲全局變量。例如:
#include <iostream>
int global_var = 10;
int main() {
int local_var = 20;
auto lambda = [&]() {
std::cout << "Global variable: " << global_var << std::endl;
std::cout << "Local variable: " << local_var << std::endl;
};
lambda();
return 0;
}
在上面的示例中,lambda表達式通過捕獲列表 [&]
捕獲了全局變量 global_var
和局部變量 local_var
。lambda表達式可以訪問和修改捕獲的變量。