From d5edf412358564c9a757839fb28b30065079e205 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Thu, 11 Aug 2016 10:26:11 +0100 Subject: [PATCH] Disable some overloads for VC12 and earlier - for some reason the compiler can't cope with them :( --- include/boost/multiprecision/detail/default_ops.hpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/include/boost/multiprecision/detail/default_ops.hpp b/include/boost/multiprecision/detail/default_ops.hpp index 1ebd6320..f01564e1 100644 --- a/include/boost/multiprecision/detail/default_ops.hpp +++ b/include/boost/multiprecision/detail/default_ops.hpp @@ -358,6 +358,7 @@ inline void eval_multiply_default(T& t, const T& u, const T& v) eval_multiply(t, v); } } +#if !BOOST_WORKAROUND(BOOST_MSVC, < 1900) template inline typename enable_if_c >::value && !is_convertible::value>::type eval_multiply_default(T& t, const T& u, const U& v) { @@ -376,6 +377,7 @@ inline typename enable_if_c >::value>::type e { eval_multiply(t, v, u); } +#endif template inline void eval_multiply_default(T& t, const U& u, const V& v) { @@ -456,6 +458,7 @@ inline void eval_divide_default(T& t, const T& u, const T& v) eval_divide(t, v); } } +#if !BOOST_WORKAROUND(BOOST_MSVC, < 1900) template inline typename enable_if_c >::value && !is_convertible::value>::type eval_divide_default(T& t, const T& u, const U& v) { @@ -482,12 +485,14 @@ inline typename enable_if_c >::value && is_co T uu(u); eval_divide(t, uu, v); } +#endif template inline void eval_divide_default(T& t, const U& u, const V& v) { if(is_same::value && ((void*)&t == (void*)&v)) { - T temp(u); + T temp; + temp = u; eval_divide(temp, v); t = temp; }