技术栈

lambda初始化捕获

Mr_WangAndy
21 天前
c++·c++40周年·lambda初始化捕获·decltype auto
C++14新特性_第一章C++语言特性_Lambda初始化捕获,decltype(auto)本文继续介绍C++14新特性,Lambda初始化捕获和decltype(auto)。在C++11中,使用Lambda表达式捕获外部变量时,只能捕获左值、拷贝或引用返回方式捕获外部变量。但是,如果在Lambda表达式中访问一个“只可移动,不可拷贝”的对象时,就犯难了。 假如传递一个 std::unique_ptr指针,如果按值传递,编译报错,因为智能指针禁止拷贝;如果按照引用传递,假如这个Lambda在一个线程中处理,处理时间较长,在外边释放后,Lambda表达式中的智能指针出现了悬空引用,导致程序崩溃。
我是有底线的