https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66735
Bug ID: 66735 Summary: [C++14] lambda init-capture fails for const references Product: gcc Version: 5.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: fynjycfdby at gmail dot com Target Milestone: --- This code fails to compile: int main() { int x = 0; auto l = [&rx = static_cast<const int&>(x)]() {}; } The error message is: test.cpp:3:14: error: binding 'const int' to reference of type 'int&' discards qualifiers auto l = [&rx = static_cast<const int&>(x)]() { But according to [expr.prim.lambda]/11 rx should be captured as auto &rx = static_cast<const int&>(x), that is as const int&. Tested on MacPorts g++-mp-5: $ g++-mp-5 -v Using built-in specs. COLLECT_GCC=g++-mp-5 ... gcc version 5.1.0 (MacPorts gcc5 5.1.0_1)