http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53484
Bug #: 53484 Summary: [c++11] Wrong auto in lambdas in function templates Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: omawarisan.bokud...@live.jp In the following program, auto is deduced to be int&, while int is expected. template <class T> void f(T x){ [&]{ std::cout << x << std::endl; auto y = x; y = 100; std::cout << x << std::endl; }(); } int main(){ f(0); } output: 0 100 In non-template functions, it doesn't occur. ------------ revision r187865 Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/home/user/gcc-trunk/libexec/gcc/x86_64-unknown-linux-gnu/4.8.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../gcc-trunk/configure --prefix=/home/user/gcc-trunk --disable-bootstrap --disable-multilib --enable-languages=c,c++,fortran --with-gmp=/home/user/gcc-trunk/src/build/backends --with-mpfr=/home/user/gcc-trunk/src/build/backends --with-mpc=/home/user/gcc-trunk/src/build/backends Thread model: posix gcc version 4.8.0 20120525 (experimental) (GCC)