https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90370
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- This is the cause of the issue described in 4.10 of https://wg21.link/p0824r1 (but the presentation there is wrong: the comparison semantics are clearly defined, the implementation divergence is in whether 0 is considered to be a POSIX errno value). VC++ appears to agree with libstdc++ that error_code{} != error_condition{}.