diff --git a/include/boost/multiprecision/cpp_bin_float.hpp b/include/boost/multiprecision/cpp_bin_float.hpp index f3e593a1..f71a2cd6 100644 --- a/include/boost/multiprecision/cpp_bin_float.hpp +++ b/include/boost/multiprecision/cpp_bin_float.hpp @@ -97,6 +97,13 @@ public: { *this = o; } +#ifdef BOOST_HAS_FLOAT128 + cpp_bin_float(const __float128& f) + : m_data(o.m_data), m_exponent(o.m_exponent), m_sign(o.m_sign) + { + *this = f; + } +#endif template cpp_bin_float(const Float& f, typename boost::enable_if_c< @@ -168,7 +175,7 @@ public: } #ifdef BOOST_HAS_FLOAT128 - cpp_bin_float& operator=(__float128 f) + cpp_bin_float& operator=(const __float128& f) { using default_ops::eval_add; typedef typename boost::multiprecision::detail::canonical::type bf_int_type;