https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82684
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |WAITING Last reconfirmed| |2017-10-24 Version|unknown |5.4.0 Ever confirmed|0 |1 --- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Christopher J. Hanks from comment #0) > Tested on Ubuntu 16.04 using GLIBCXX_3.4. The template specializations for > std::complex<double | float | long double> require the presence of the C99 > complex type even though the primary class template is designed to work > without it. This is by design. What is the bug you're reporting? > Putting the specializations and forward declarations in an `#if > _GLIBCXX_USE_C99_COMPLEX` block appears to allow code to compile as expected. What code? What doesn't compile without those changes?