deprecate gsl::details::throw_exception. remove unused header in gsl_assert. gsl_util to use terminate instead of throw_exception

This commit is contained in:
Jordan Maples [MSFT] 2019-12-13 13:40:25 -08:00
parent 6c5c708877
commit 17ad4495fb
2 changed files with 3 additions and 9 deletions

View File

@ -18,7 +18,6 @@
#define GSL_CONTRACTS_H
#include <exception>
#include <stdexcept> // for logic_error
//
// make suppress attributes parse for some compilers
@ -111,8 +110,8 @@ namespace details
#endif
}
template <typename Exception>
[[deprecated("GSL no longer supports throwing for contract violations. Use gsl::details::terminate() instead.")]]
[[noreturn]] void throw_exception(Exception&&) noexcept
{
gsl::details::terminate();

View File

@ -21,7 +21,6 @@
#include <array>
#include <cstddef> // for ptrdiff_t, size_t
#include <exception> // for exception
#include <initializer_list> // for initializer_list
#include <type_traits> // for is_signed, integral_constant
#include <utility> // for exchange, forward
@ -97,10 +96,6 @@ constexpr T narrow_cast(U&& u) noexcept
return static_cast<T>(std::forward<U>(u));
}
struct narrowing_error : public std::exception
{
};
namespace details
{
template <class T, class U>
@ -120,9 +115,9 @@ constexpr
T narrow(U u) noexcept(false)
{
T t = narrow_cast<T>(u);
if (static_cast<U>(t) != u) gsl::details::throw_exception(narrowing_error());
if (static_cast<U>(t) != u) gsl::details::terminate();
if (!details::is_same_signedness<T, U>::value && ((t < T{}) != (u < U{})))
gsl::details::throw_exception(narrowing_error());
gsl::details::terminate();
return t;
}