fogsong233 wrote: > > > I am a bit confused, if the lambda is on the global scope it implicitly > > > captures by reference, right: > > > [https://godbolt.org/z/rM1z1xfjq我有点困惑,如果](https://godbolt.org/z/rM1z1xfjq%E6%88%91%E6%9C%89%E7%82%B9%E5%9B%B0%E6%83%91%EF%BC%8C%E5%A6%82%E6%9E%9C) > > > lambda 在全局作用域中,它会隐式地按引用捕获,对吧:https://godbolt.org/z/rM1z1xfjq > > > In that sense I'd think the diagnostic is correct, > > > right?从这个角度来看,我认为诊断是正确的,对吧? > > > > > > It really depends on how clang-repl defines its execution context. > > Intuitively, we feel like we are working within a function scope (like > > main), so we unconsciously reach for [&] or [&variable] to capture > > surrounding state. However, technically, clang-repl treats these variables > > as globals to ensure persistence, meaning we can access them directly > > without any capture. The diagnostic, therefore, reflects this > > implementation choice: we perceive it as a local context, but the tool > > defines it as global. So should user see variable in the top level of repl > > the same kind like some variable in a function context? > > I believe it should behave in the same way as if we are working on the global > scope. For example `auto capture = [&]() { return x * 2; };` has little to do > with executing statements on the global scope. I'd say this issue is invalid > as what clang-repl displays is exactly what compiled c++ does. I think we > should close the issue with "won't fix" and clarify this there. What do you > think?
Fine. https://github.com/llvm/llvm-project/pull/178579 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
