[Bug c++/93842] generic lambda accesses a variable with with automatic storage duration that wasn't captured by the lambda expression
kuzniar95 at o2 dot pl
gcc-bugzilla@gcc.gnu.org
Tue Jun 16 17:20:35 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93842
kuzniar95 at o2 dot pl changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |INVALID
Status|UNCONFIRMED |RESOLVED
--- Comment #8 from kuzniar95 at o2 dot pl ---
I've discovered that turning:
[](auto) { odr_use(ch); };
into:
[](auto) { odr_use(ch); }(123);
finally triggers a longed-for error:
------
lambda.cpp: In instantiation of ‘main()::<lambda(auto:2)> [with auto:2 = int]’:
lambda.cpp:12:34: required from here
lambda.cpp:12:24: error: ‘ch’ is not captured
12 | [](auto) { odr_use(ch); }(123);
| ^~
lambda.cpp:12:6: note: the lambda has no capture-default
12 | [](auto) { odr_use(ch); }(123);
| ^
lambda.cpp:6:20: note: ‘constexpr const char ch’ declared here
6 | constexpr char ch = '=';
|
------
This is good enough for me so I'm closing this bug report.
More information about the Gcc-bugs
mailing list