|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r80153 - in sandbox/big_number/boost/multiprecision: . detail
From: john_at_[hidden]
Date: 2012-08-23 07:24:34
Author: johnmaddock
Date: 2012-08-23 07:24:33 EDT (Thu, 23 Aug 2012)
New Revision: 80153
URL: http://svn.boost.org/trac/boost/changeset/80153
Log:
Inching closer to getting GCC to compile the tests again...
Text files modified:
sandbox/big_number/boost/multiprecision/detail/number_base.hpp | 2 +-
sandbox/big_number/boost/multiprecision/mpfr.hpp | 1 -
sandbox/big_number/boost/multiprecision/number.hpp | 6 +++++-
sandbox/big_number/boost/multiprecision/rational_adapter.hpp | 4 ++--
4 files changed, 8 insertions(+), 5 deletions(-)
Modified: sandbox/big_number/boost/multiprecision/detail/number_base.hpp
==============================================================================
--- sandbox/big_number/boost/multiprecision/detail/number_base.hpp (original)
+++ sandbox/big_number/boost/multiprecision/detail/number_base.hpp 2012-08-23 07:24:33 EDT (Thu, 23 Aug 2012)
@@ -76,7 +76,7 @@
template <class Val, class Backend, class Tag>
struct canonical_imp
{
- typedef typename decay<Val>::type type;
+ typedef typename remove_cv<typename decay<const Val>::type>::type type;
};
template <class Val, class Backend>
struct canonical_imp<Val, Backend, mpl::int_<0> >
Modified: sandbox/big_number/boost/multiprecision/mpfr.hpp
==============================================================================
--- sandbox/big_number/boost/multiprecision/mpfr.hpp (original)
+++ sandbox/big_number/boost/multiprecision/mpfr.hpp 2012-08-23 07:24:33 EDT (Thu, 23 Aug 2012)
@@ -1083,7 +1083,6 @@
template<>
struct number_category<typename detail::canonical<mpfr_t, backends::mpfr_float_backend<0> >::type> : public mpl::int_<number_kind_floating_point>{};
-
using boost::multiprecision::backends::mpfr_float_backend;
typedef number<mpfr_float_backend<50> > mpfr_float_50;
Modified: sandbox/big_number/boost/multiprecision/number.hpp
==============================================================================
--- sandbox/big_number/boost/multiprecision/number.hpp (original)
+++ sandbox/big_number/boost/multiprecision/number.hpp 2012-08-23 07:24:33 EDT (Thu, 23 Aug 2012)
@@ -1601,7 +1601,11 @@
template <class B2, bool ET>
static BOOST_FORCEINLINE BOOST_CONSTEXPR const B2& canonical_value(const number<B2, ET>& v) BOOST_NOEXCEPT { return v.backend(); }
template <class V>
- static BOOST_FORCEINLINE BOOST_CONSTEXPR typename detail::canonical<V, Backend>::type canonical_value(const V& v) BOOST_NOEXCEPT { return static_cast<typename detail::canonical<V, Backend>::type>(v); }
+ static BOOST_FORCEINLINE BOOST_CONSTEXPR typename disable_if<is_same<typename detail::canonical<V, Backend>::type, V>, typename detail::canonical<V, Backend>::type>::type
+ canonical_value(const V& v) BOOST_NOEXCEPT { return static_cast<typename detail::canonical<V, Backend>::type>(v); }
+ template <class V>
+ static BOOST_FORCEINLINE BOOST_CONSTEXPR typename enable_if<is_same<typename detail::canonical<V, Backend>::type, V>, const V&>::type
+ canonical_value(const V& v) BOOST_NOEXCEPT { return v; }
static BOOST_FORCEINLINE typename detail::canonical<std::string, Backend>::type canonical_value(const std::string& v) BOOST_NOEXCEPT { return v.c_str(); }
static BOOST_FORCEINLINE BOOST_CONSTEXPR const Backend& function_arg_value(const self_type& v) BOOST_NOEXCEPT { return v.backend(); }
Modified: sandbox/big_number/boost/multiprecision/rational_adapter.hpp
==============================================================================
--- sandbox/big_number/boost/multiprecision/rational_adapter.hpp (original)
+++ sandbox/big_number/boost/multiprecision/rational_adapter.hpp 2012-08-23 07:24:33 EDT (Thu, 23 Aug 2012)
@@ -41,11 +41,11 @@
template <class U>
explicit rational_adapter(const U& u,
typename enable_if_c<
- detail::is_explicitly_convertible<U, IntBackend>::value && !is_convertible<U, IntBackend>::value
+ boost::multiprecision::detail::is_explicitly_convertible<U, IntBackend>::value && !is_convertible<U, IntBackend>::value
>::type* = 0)
: m_value(IntBackend(u)){}
template <class U>
- typename enable_if_c<(detail::is_explicitly_convertible<U, IntBackend>::value && !is_arithmetic<U>::value), rational_adapter&>::type operator = (const U& u)
+ typename enable_if_c<(boost::multiprecision::detail::is_explicitly_convertible<U, IntBackend>::value && !is_arithmetic<U>::value), rational_adapter&>::type operator = (const U& u)
{
m_value = IntBackend(u);
}
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk