http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51705
--- Comment #40 from Chris Jefferson <chris at bubblescope dot net> 2012-01-09 22:45:32 UTC --- There are several C++11 features which clang does not support, which g++ does. clang also defines __cplusplus == 201103L, despite not implementing large parts of the C++11 standard. Worse, clang does not have an equivalent of fixincludes, so if these g++-only features were used, with clang you would be stuck with uncompilable code. Perhaps the change to c++11 should have been done differently, but if we did what you suggest we would be no better off, as no compiler (not g++, not clang, not visual studio, not icc) would define __cplusplus == 201103L for several years. In fact, no open source compiler would yet have defined it for C++03! However, I can see this conversation is going around in circles.