https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79228
--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Jason Merrill from comment #4) > Incidentally, why doesn't complex<T> have a constructor from __complex T? I guess because the primary template doesn't store a __complex T, but two separate T members (which isn't a techncial obstacle, but might be the reason anyway). The float, double, and long double specializations do have that constructor.