Skip to content
8 changes: 8 additions & 0 deletions include/boost/safe_numbers/detail/config.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,12 @@

#endif

#if defined(__GNUC__) || defined(__clang__)
# define BOOST_SAFE_NUMBERS_UNREACHABLE __builtin_unreachable()
#elif defined(_MSC_VER)
# define BOOST_SAFE_NUMBERS_UNREACHABLE __assume(0)
#else
# define BOOST_SAFE_NUMBERS_UNREACHABLE std::abort()
#endif

#endif // BOOST_SAFENUMBERS_CONFIG_HPP
18 changes: 18 additions & 0 deletions include/boost/safe_numbers/detail/overflow_policy.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// Copyright 2026 Matt Borland
// Distributed under the Boost Software License, Version 1.0.
// https://www.boost.org/LICENSE_1_0.txt

#ifndef BOOST_SAFE_NUMBERS_DETAIL_OVERFLOW_POLICY_HPP
#define BOOST_SAFE_NUMBERS_DETAIL_OVERFLOW_POLICY_HPP

namespace boost::safe_numbers::detail {

enum class overflow_policy
{
throw_exception,
saturate
};

} // namespace boost::safe_numbers::detail

#endif // BOOST_SAFE_NUMBERS_DETAIL_OVERFLOW_POLICY_HPP
Loading
Loading