diff --git a/include/boost/system/result.hpp b/include/boost/system/result.hpp index 82dbe2a..41bbfa6 100644 --- a/include/boost/system/result.hpp +++ b/include/boost/system/result.hpp @@ -1056,13 +1056,13 @@ template result operator&( result const& r, F&& f ) { - if( r ) + if( r.has_error() ) { - return std::forward( f )( *r ); + return r.error(); } else { - return r.error(); + return std::forward( f )( *r ); } } @@ -1072,13 +1072,13 @@ template result operator&( result&& r, F&& f ) { - if( r ) + if( r.has_error() ) { - return std::forward( f )( *std::move( r ) ); + return r.error(); } else { - return r.error(); + return std::forward( f )( *std::move( r ) ); } } @@ -1091,13 +1091,13 @@ template U operator&( result const& r, F&& f ) { - if( r ) + if( r.has_error() ) { - return std::forward( f )( *r ); + return r.error(); } else { - return r.error(); + return std::forward( f )( *r ); } } @@ -1108,13 +1108,13 @@ template U operator&( result&& r, F&& f ) { - if( r ) + if( r.has_error() ) { - return std::forward( f )( *std::move( r ) ); + return r.error(); } else { - return r.error(); + return std::forward( f )( *std::move( r ) ); } }