http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59087
--- Comment #10 from Marc Glisse <glisse at gcc dot gnu.org> --- It seems to me that this is ok now. * If you want <complex>, include that, not <complex.h> * <complex.h> contains the C stuff for compatibility with C code, C code doesn't include <ccomplex>, so <ccomplex> doesn't need that stuff (it wouldn't make sense to move those non-standard functions to namespace std) * The error message now advertises the option that lets complex suffixes compile * The files using unsafe identifiers (conflicts with macros) now use uglified names instead I am not planning to do a backport myself of those 2 trivial patches, but if anyone wants to, feel free to do it. We may have to revisit some decisions when the standard (C++14? C++17?) will provide UDLs that conflict with the complex suffixes.