diff options
Diffstat (limited to 'boost/multiprecision/mpfi.hpp')
-rw-r--r-- | boost/multiprecision/mpfi.hpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/boost/multiprecision/mpfi.hpp b/boost/multiprecision/mpfi.hpp index 66a23cab70..1ac7d1b5b9 100644 --- a/boost/multiprecision/mpfi.hpp +++ b/boost/multiprecision/mpfi.hpp @@ -907,8 +907,10 @@ inline void eval_pow(mpfi_float_backend<Digits10>& result, const mpfi_float_back return; } typename boost::multiprecision::detail::canonical<boost::uintmax_t, mpfi_float_backend<Digits10> >::type an; +#ifndef BOOST_NO_EXCEPTIONS try { +#endif using default_ops::eval_convert_to; eval_convert_to(&an, e); if(e.compare(an) == 0) @@ -920,11 +922,13 @@ inline void eval_pow(mpfi_float_backend<Digits10>& result, const mpfi_float_back result.negate(); return; } +#ifndef BOOST_NO_EXCEPTIONS } catch(const std::exception&) { // conversion failed, just fall through, value is not an integer. } +#endif result = std::numeric_limits<number<mpfi_float_backend<Digits10>, et_on> >::quiet_NaN().backend(); return; } |