When the compiler is provided with -std=c++0x to enable the experimental C++0x mode, includes of TR1 facilities (e.g., tr1/tuple) do not put TR1 functionality into namespace std::tr1, breaking backward compatibility. Here's an example program that compiles without -std=c++0x but does not compile with it:
#include <tr1/tuple> int main() { std::tr1::tuple<int, double> x(17, 3.14); return 0; } -- Summary: TR1 includes do not work with -std=c++0x Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dgregor at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31426