And those instructions appear before including headers with templates or inline functions? Which then stop to work as designed?

Then better get a compile error, when an implicit conversion (only those which were disabled) would happen.

Those global changes of language defaults better fit into (safety) profiles.
 

-----Ursprüngliche Nachricht-----
Von: Robert J. Simpson via Std-Proposals <std-proposals@lists.isocpp.org>
Gesendet: So 11.01.2026 10:43
Betreff: Re: [std-proposals] resolving function overloading ambiguity for bool arguments
An: std-proposals@lists.isocpp.org;
CC: Robert J. Simpson <robert.simpson.lists@gmail.com>;

Wouldn't it be better to be able to disable implicit conversion completely?

E.g. by declaring

explicit bool (int);
explicit bool (false);

etc.

Rob

 

On 09/01/2026 16:37, Steve Weinrich via Std-Proposals wrote:

Consider two methods:

 

void interest (double arg1, bool minor);

void interest (double arg1, int factor);

 

The call: interest(5.5, 5); is ambiguous because 5 will freely convert to a bool. 

 

I was wondering what y’all would think of narrowing this behavior by this addition:

 

void interest (double arg1, explicit bool minor);

 

Potentially, this could be applied to all arguments:

 

void explicit interest (double arg1, bool minor);

 

Thanks,

Steve


-- 
 Std-Proposals mailing list
 Std-Proposals@lists.isocpp.org
 https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals