From 4f6efdb36a323e765196e0cf89affd4a23705b77 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Fri, 6 Mar 2015 18:56:13 +0000 Subject: [PATCH] Workaround for MSVC that seems not to find the default_ops overload in some situations. --- include/boost/multiprecision/cpp_bin_float.hpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/include/boost/multiprecision/cpp_bin_float.hpp b/include/boost/multiprecision/cpp_bin_float.hpp index d1d8406c..9a4ceff5 100644 --- a/include/boost/multiprecision/cpp_bin_float.hpp +++ b/include/boost/multiprecision/cpp_bin_float.hpp @@ -136,6 +136,7 @@ public: { BOOST_MATH_STD_USING using default_ops::eval_add; + typedef typename boost::multiprecision::detail::canonical::type bf_int_type; switch((boost::math::fpclassify)(f)) { @@ -181,7 +182,9 @@ public: #endif f -= ipart; m_exponent += bits; - eval_add(*this, ipart); + cpp_bin_float t; + t = static_cast(ipart); + eval_add(*this, t); } m_exponent += static_cast(e); return *this;