https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104365
--- Comment #9 from Andris Pavenis <andris at gcc dot gnu.org> --- >> The warning should be in case when both >> 1) there is preferred standard conversion sequence for parameter of one >> overloaded method > >Standard conversions include T -> const T&, and derived-to-base conversions, > >>and T* -> void*. I don't think anybody would be surprised that those >>conversions beat a user-defined one. Perhaps there should be no warning in these cases. [const] char * -> bool is good example which would deserve warning. I do not have other examples currently. >> 2) there is other user defined conversion sequences for one more more other >> overloaded methods > >And non-member functions? Should be handled in the same way as member functions >> 20220203-1.cpp:19:24: warning: call of overloaded 'Test(const char [4], >> unsigned >> char[4])' is ambiguous > >"is ambiguous" is incorrect though, so it would have to be clear that there is >>no ambiguity in C++ terms, just potential for confusion. Maybe 'suspicious use of overloaded ...' or something similar