[Bug libstdc++/56111] {float,double,long double} complex not accepted anymore

glisse at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat Jan 26 11:36:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56111

--- Comment #6 from Marc Glisse <glisse at gcc dot gnu.org> 2013-01-26 11:35:52 UTC ---
(In reply to comment #5)
> Ok, I understand. Looks like, however, we are back to my original observation
> in PR54112 that in C++03 mode we have less constraints and with more leeway we
> could manage to keep on supporting this? I think submitter has a point that
> it's weird that we don't support anymore in C++03 mode the very simple and old
> kind of code attached here. I have no idea how complex it would be and whether
> it's worth it, I would like to ear from the Release managers too.

What I said in comment #1 should take about 3-5 lines of macros and support
this in C++03 mode, I hope. Or we could partially revert my change and only
undef complex in C++11, leaving complex.h and complex as incompatible in C++03.
Or even never undef complex, though it doesn't seem very conforming.

Note while we are talking about this that I think it was a very bad decision
from the committee to make <complex.h> an alias for <complex>. A few minor
changes like in string.h are acceptable (they already cause trouble), but
complex.h is a C header, and C++ has no business replacing it with something
that doesn't define the same interface at all. It would have been better to not
mention complex.h at all, or only as not supported, leaving it up to
implementors to decide how to handle it.



More information about the Gcc-bugs mailing list