http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49274
Summary: Regression: unique_ptr needs full definition of map type Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: merk...@comcast.net Created attachment 24420 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24420 Error message for gcc -std=c++0x -c foo.cpp This code no longer compiles with gcc-4.7-20110528: #include <memory> #include <map> using namespace std; struct Foo { Foo(const Foo&) = delete; Foo&operator=(const Foo&) = delete; struct CMP; ~Foo(); unique_ptr<map< int, int,CMP> > cmp; }; The compilation is: gcc -std=c++0x -c foo.cpp ray@jupiter:~/tmp> gcc --version gcc (GCC) 4.7.0 20110528 (experimental) Copyright (C) 2011 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. I've attached the error message.