http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59087
Bug ID: 59087 Summary: including complex.h in C++11/1y mode should not include C's complex.h Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: kikairoya at gmail dot com working draft N3691 says: 26.4.10 Header <ccomplex> The header behaves as if it simply includes the header <complex>. D.5 C standard library headers Every C header, each of which has a *name* of the form *name.h*, behaves as if each name placed in the standard library namespace by the corresponding *cname* header is placed within the global namespace scope. so, including <complex.h> should behaves as same as including <complex> except namespace scope, but libstdc++'s one includes system's <complex.h> unnecessarily.