[clang] [clang] Accept lambdas in C++03 as an extensions (PR #73376)

Nikolas Klauser via cfe-commits cfe-commits at lists.llvm.org
Sat Dec 2 07:08:10 PST 2023


================
@@ -92,14 +94,14 @@ namespace ImplicitCapture {
     [] { return ref_i; }; // expected-error {{variable 'ref_i' cannot be implicitly captured in a lambda with no capture-default specified}} expected-note {{lambda expression begins here}} expected-note 2 {{capture 'ref_i' by}} expected-note 2 {{default capture by}}
 
     static int j;
-    int &ref_j = j;
-    [] { return ref_j; }; // ok
+    int &ref_j = j; // cxx03-fixme-note {{declared here}}
+    [] { return ref_j; }; // cxx03-fixme-error {{variable 'ref_j' cannot be implicitly captured in a lambda with no capture-default specified}} cxx03-fixme-note 4 {{capture}} cxx03-fixme-note {{lambda expression begins here}}
----------------
philnik777 wrote:

Ah OK. So this diagnostic is actually correct, since an `int&` is not usable in a constant expression in C++03. Or am I misunderstanding more?

https://github.com/llvm/llvm-project/pull/73376


More information about the cfe-commits mailing list