溫馨提示×

C++ lambda捕獲靜態變量行嗎

c++
小樊
148
2024-07-05 19:02:22
欄目: 編程語言

C++ lambda可以捕獲靜態變量,但要注意捕獲方式的正確性。靜態變量是全局變量的一種,因此lambda可以通過捕獲方式來使用靜態變量。

靜態變量可以通過引用捕獲或者復制捕獲的方式被lambda捕獲。引用捕獲會直接引用靜態變量,而復制捕獲會將靜態變量的當前值復制一份給lambda。

例如,以下是一個捕獲靜態變量的lambda示例:

#include <iostream>

void testLambda() {
    static int staticVar = 10;
    
    auto lambda = [&staticVar]() {
        std::cout << "Static variable value: " << staticVar << std::endl;
    };
    
    lambda();
}

int main() {
    testLambda();
    
    return 0;
}

在這個示例中,lambda通過引用捕獲了靜態變量staticVar,并打印了它的值。注意,在lambda內部訪問靜態變量時,需要確保靜態變量在lambda調用時仍然有效。

總而言之,C++ lambda可以捕獲靜態變量,但需要注意捕獲方式的正確性和靜態變量的生存期。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女