https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119897
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- So GCC, EDG and MSVC all agree that the code is not ambiguous when there is `operator bool` (or operator int). Only clang disagrees with the above case. EDG does not think it is ambiguous even without the `operator bool`. GCC, clang and MSVC all think it is ambiguous without `operator bool` case. I am not sure what the correct answer is based on that.