diff --git a/doc/system/changes.adoc b/doc/system/changes.adoc index 08673e3..7b18bed 100644 --- a/doc/system/changes.adoc +++ b/doc/system/changes.adoc @@ -10,8 +10,9 @@ https://www.boost.org/LICENSE_1_0.txt ## Changes in Boost 1.79 -* Added a `throw_exception_from_error` overload for `std::error_code`. * Added a `boost::source_location` parameter to `throw_exception_from_error`. +* Added `throw_exception_from_error` overloads for `errc::errc_t`, + `std::error_code`, `std::errc`, `std::exception_ptr`. * `result::value` now automatically supplies `BOOST_CURRENT_LOCATION` to `throw_exception_from_error` via a default argument. * Added an `errc::make_error_code` overload taking a source location. diff --git a/doc/system/reference.adoc b/doc/system/reference.adoc index 3fa170b..755b52f 100644 --- a/doc/system/reference.adoc +++ b/doc/system/reference.adoc @@ -1496,6 +1496,15 @@ BOOST_NORETURN inline void throw_exception_from_error( error_code const & e, BOOST_NORETURN inline void throw_exception_from_error( std::error_code const & e, boost::source_location const & loc ); +BOOST_NORETURN inline void throw_exception_from_error( errc::errc_t const & e, + boost::source_location const & loc ); + +BOOST_NORETURN inline void throw_exception_from_error( std::errc const & e, + boost::source_location const & loc ); + +BOOST_NORETURN inline void throw_exception_from_error( std::exception_ptr & e, + boost::source_location const & loc ); + // in_place_* using in_place_value_t = /*unspecified*/; @@ -1545,6 +1554,39 @@ BOOST_NORETURN inline void throw_exception_from_error( std::error_code const & e Effects: :: `boost::throw_with_location( std::system_error( e ), loc )`. +``` +BOOST_NORETURN inline void throw_exception_from_error( errc::errc_t const & e, + boost::source_location const & loc ); +``` +[none] +* {blank} ++ +Effects: :: + `boost::throw_with_location( system_error( make_error_code( e ) ), loc )`. + +``` +BOOST_NORETURN inline void throw_exception_from_error( std::errc const & e, + boost::source_location const & loc ); +``` +[none] +* {blank} ++ +Effects: :: + `boost::throw_with_location( std::system_error( make_error_code( e ) ), loc )`. + +``` +BOOST_NORETURN inline void throw_exception_from_error( std::exception_ptr & e, + boost::source_location const & loc ); +``` +[none] +* {blank} ++ +Effects: :: ++ +[disc] +** If `e` isn't null, `std::rethrow_exception( e )`. +** Otherwise, `boost::throw_with_location( std::bad_exception(), loc )`. + ### result `result` stores either a value of type `T`, or an error of type `E`. `E` defaults