http://gcc.gnu.org/bugzilla/show_bug.cgi?id=1773
--- Comment #121 from Marc Glisse <marc.glisse at normalesup dot org> 2011-09-28 14:20:09 UTC --- (In reply to comment #120) > Last plea for Standards conformance: What about only setting the correct > define > if -std=c++89/03/0x/11 is passed and keeping the old behavior for -std=gnu++*? I don't think so. First, that would be weird. And this isn't just about switching a #define, it comes with a lot of other changes. Besides, it wouldn't help you at all. The only thing that the value of __cplusplus can be good for now is distinguishing between C++03 and C++11, but even trunk doesn't set the C++11 value, and my hope is that it won't set it until C++11 support is essentially complete.