http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47212
Summary: [C++0x] crash on lambda returning lambda Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: a71...@gmail.com Here's the code: ============================================== #include <iostream> using namespace std; auto test = [] () { return [] (istream &ris) -> istream& { return ris; }; }; int main() { cin >> test(); return 0; } ============================================== I'm not sure whether this code is correct but it just crashes g++ 4.5.0. I'm compiling with: g++ -std=c++0x -pedantic -Wall Test.cpp I'm doing code like that because I wish to implement a custom parameterized I/O manipulator without using implementation-specific types such as smanip and stuff. Note that it doesn't crash if I just call test() without using the result on cin, thus I think the problem is matching the returned lambda against the version of operator >> that takes a function as an argument. PS: I don't think there's any difference but I'm using MinGW and I'm currently unable to test on Linux with real g++.