https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117257
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- Further reduced: void f(_Complex double); int main() { f({1.0, 0.0}); } GCC accepts this, Clang doesn't. This is the underlying reason why Clang won't accept std::complex<double>({1.0, 1.0}).