2
0
mirror of https://github.com/boostorg/leaf.git synced 2026-01-26 06:32:23 +00:00

Noexcept refinements

This commit is contained in:
Emil Dotchevski
2026-01-24 20:33:59 -05:00
parent 219d80da86
commit c8fa8df081
4 changed files with 8 additions and 11 deletions

View File

@@ -195,7 +195,7 @@ namespace detail
tuple_for_each<I-1,Tup>::deactivate(tup);
}
BOOST_LEAF_CONSTEXPR static void unload( Tup & tup, int err_id ) noexcept
BOOST_LEAF_CONSTEXPR static void unload( Tup & tup, int err_id ) noexcept(!BOOST_LEAF_CFG_CAPTURE)
{
static_assert(!std::is_same<error_info, typename std::decay<decltype(std::get<I-1>(tup))>::type>::value, "Bug in LEAF: context type deduction");
BOOST_LEAF_ASSERT(err_id != 0);
@@ -357,7 +357,7 @@ public:
tuple_for_each<std::tuple_size<Tup>::value,Tup>::deactivate(tup_);
}
BOOST_LEAF_CONSTEXPR void unload(error_id id) noexcept
BOOST_LEAF_CONSTEXPR void unload(error_id id) noexcept(!BOOST_LEAF_CFG_CAPTURE)
{
BOOST_LEAF_ASSERT(!is_active());
detail::tuple_for_each<std::tuple_size<Tup>::value,Tup>::unload(tup_, id.value());

View File

@@ -217,8 +217,6 @@ namespace detail
#endif // #else (#if BOOST_LEAF_CFG_CAPTURE)
using verbose_diagnostic_info = diagnostic_details;
} } // namespace boost::leaf
#endif // #ifndef BOOST_LEAF_DIAGNOSTICS_HPP_INCLUDED

View File

@@ -118,7 +118,6 @@ struct show_in_diagnostics<e_source_location>: std::false_type
namespace serialization
{
template <class Encoder, class T, class... Unused>
typename std::enable_if<std::is_base_of<detail::encoder, Encoder>::value>::type
serialize(Encoder &, T const &, char const *, Unused && ...)
@@ -863,13 +862,13 @@ namespace detail
}
}
inline error_id new_error()
BOOST_LEAF_ATTRIBUTE_NODISCARD inline error_id new_error()
{
return detail::make_error_id(detail::start_new_error());
}
template <class... Item>
inline error_id new_error( Item && ... item )
BOOST_LEAF_ATTRIBUTE_NODISCARD inline error_id new_error( Item && ... item )
{
return detail::make_error_id(detail::start_new_error()).load(std::forward<Item>(item)...);
}

View File

@@ -410,13 +410,13 @@ public:
#endif // #else (#if defined(BOOST_STRICT_CONFIG) || !defined(__clang__))
#if BOOST_LEAF_CFG_STD_SYSTEM_ERROR
result( std::error_code const & ec ) noexcept:
result( std::error_code const & ec ) noexcept(!BOOST_LEAF_CFG_CAPTURE):
what_(error_id(ec))
{
}
template <class Enum, class = typename std::enable_if<std::is_error_code_enum<Enum>::value, int>::type>
result( Enum e ) noexcept:
result( Enum e ) noexcept(!BOOST_LEAF_CFG_CAPTURE):
what_(error_id(e))
{
}
@@ -652,13 +652,13 @@ public:
}
#if BOOST_LEAF_CFG_STD_SYSTEM_ERROR
result( std::error_code const & ec ) noexcept:
result( std::error_code const & ec ) noexcept(!BOOST_LEAF_CFG_CAPTURE):
base(ec)
{
}
template <class Enum, class = typename std::enable_if<std::is_error_code_enum<Enum>::value, int>::type>
result( Enum e ) noexcept:
result( Enum e ) noexcept(!BOOST_LEAF_CFG_CAPTURE):
base(e)
{
}