diff --git a/include/boost/variant2/expected.hpp b/include/boost/variant2/expected.hpp index d2b6581..e490625 100644 --- a/include/boost/variant2/expected.hpp +++ b/include/boost/variant2/expected.hpp @@ -409,6 +409,18 @@ public: return unexpected(); } } + + template then_result operator>>( F && f ) const + { + if( has_value() ) + { + return std::forward(f)( **this ); + } + else + { + return unexpected(); + } + } }; template inline constexpr bool operator==( expected const & x1, expected const & x2 )