https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127008 --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- Or if it wouldn't use an explicit constructor, simply: if (type1 s(a)) ^~~~ | s = a