Le 04/06/2017 à 22:40, Peter Dimov via Boost a écrit :
Gottlob Frege wrote:
Perhaps the heuristic could be, if the argument can be interpreted as > both a value and an error, the conversion is ambiguous, regardless of > which of the two is a better match. This will make
On Sun, Jun 4, 2017 at 12:35 PM, Peter Dimov via Boost the above return > ambiguous, which is probably as it should be.
I think I might agree with that. There will definitely be cases where expected
has T == int and E == int, and worse, sometimes those cases will be: - T is a template param, so you don't "see" that it is sometimes an int - E is a #define or platform-defined, etc, so it is only _sometimes_ an int T == int, E == int is not a problem, because it will always be ambiguous. The thorny case is E == int, T == something convertible from int, such as double, long, unsigned.
Lets imagine ofr a moment that we allowed implicit conversion from
convertible to T and convertible to E as far as both constructions are
not possible.
expected