 
            
            
            
            
                4 Jun
                
                    2017
                
            
            
                4 Jun
                
                '17
                
            
            
            
        
    
                6:42 p.m.
            
        Vicente J. Botet Escriba wrote:
enum unscoped_error { unscoped_other_error = 7 };
expected<double, unscoped_error> test() { return unscoped_other_error; // returns 7.0 }
...
unexpected_type<E> is explicitly constructible from E. expected<T, E> is implicitly constructible from unexpected_type<E>. This avoid this kind of ambiguities.
Could you please try this code with your implementation?