 
            
            
            
            
                6 Feb
                
                    2018
                
            
            
                6 Feb
                
                '18
                
            
            
            
        
    
                5:06 a.m.
            
        On Mon, Feb 5, 2018 at 4:29 PM, Rob Stewart via Boost <boost@lists.boost.org
wrote:
Perhaps the solution is basic_result and basic_outcome, with result and outcome as special, simplifying cases. That way, most can use the normal, simpler templates, but those needing all of the knobs and levers for a custom use case can use the basic_* types.
This piles up even more complexity. Here is how a user header file would look like with what I think is the correct interface for this kind of library: namespace boost { template <class T> class result; } boost::result<int> foo();