c++ - 内部 lambda 中的悬空引用

标签 c++ c++11 lambda dangling-pointer

我有一个内部 lambda,它使用外部 lambda 的引用变量之一,如下所示:

int x=0;
auto outer=[&](){
   return [&](){
        x=5;
    };
};

auto inner= outer();
inner();
std::cout << x;

tried它。它运作良好。但是,我想确保这里没有悬空引用。有吗?

最佳答案

这里没有悬空引用。内部 lambda 的引用不是对引用的引用(没有这样的东西);它指的是 x - 当然没有超出范围。

关于c++ - 内部 lambda 中的悬空引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43584002/

相关文章:

java - 有没有办法比较 lambdas?

c++ - 在父类的析构函数中加入成员线程访问其父类的其他成员是否会导致未定义的行为?

c++ - 多个析构函数调用

c++ - 是否有记录的方法来重置现有 std::exponential_distribution 对象上的 lambda 参数?

java - Log4j2 在方法引用调用中打印实用程序类行号

lambda - AWS CodePipeline : pass Lambda function output to CloudFormation

c++ - 如何以编程方式生成与这些相似的形状?

函数: "illegal use of explicit template arguments"的C++模板特化

c++ - 生成不同范围内的随机 double

c++ - 在 C++ 的原始字符串中转义 R"()"