Vicente J. Botet Escriba wrote:
Le 04/06/2017 à 17:42, Peter Dimov via Boost a écrit :
Vicente J. Botet Escriba wrote:
enum unscoped_error { unscoped_other_error = 7 };
expected
test() { return unscoped_other_error; // returns 7.0 } ...
unexpected_type<E> is explicitly constructible from E. expected
is implicitly constructible from unexpected_type<E>. This avoid this kind of ambiguities. Could you please try this code with your implementation?
It will work as yours. My concern is that this is not what we want, isn't it?
It's not, but what you say above - "this avoid this kind of ambiguities" - created the impression that you think that it isn't a problem. As I see it, this can be avoided by either making the constructor from T explicit as well, or by making the constructor from E implicit as well.