Skip to content

Commit

Permalink
Fix for gcc-8 explicit conversion operator being too non-specific in …
Browse files Browse the repository at this point in the history
…class number.

Update travis to test gcc-8 and also mpc.
  • Loading branch information
jzmaddock committed Jul 1, 2018
1 parent 61f4fd8 commit 06d0340
Show file tree
Hide file tree
Showing 2 changed files with 375 additions and 1 deletion.
373 changes: 373 additions & 0 deletions .travis.yml
Expand Up @@ -444,6 +444,379 @@ matrix:
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++03 TEST_SUITE=arithmetic_tests
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++11 TEST_SUITE=arithmetic_tests
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++14 TEST_SUITE=arithmetic_tests
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++17 TEST_SUITE=arithmetic_tests
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++03 TEST_SUITE=cpp_int_tests
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++11 TEST_SUITE=cpp_int_tests
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++14 TEST_SUITE=cpp_int_tests
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++17 TEST_SUITE=cpp_int_tests
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++03 TEST_SUITE=functions_and_limits
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++11 TEST_SUITE=functions_and_limits
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++14 TEST_SUITE=functions_and_limits
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=gnu++14 TEST_SUITE=functions_and_limits
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++17 TEST_SUITE=functions_and_limits
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++03 TEST_SUITE=conversions
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++11 TEST_SUITE=conversions
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++14 TEST_SUITE=conversions
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=gnu++14 TEST_SUITE=conversions
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++17 TEST_SUITE=conversions
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++03 TEST_SUITE=misc
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++11 TEST_SUITE=misc
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++14 TEST_SUITE=misc
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=gnu++14 TEST_SUITE=misc
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++17 TEST_SUITE=misc
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++03 TEST_SUITE="compile_fail examples"
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++11 TEST_SUITE="compile_fail examples"
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++14 TEST_SUITE="compile_fail examples"
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++17 TEST_SUITE="compile_fail examples"
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test
- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++03 TEST_SUITE=concepts
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++11 TEST_SUITE=concepts
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++14 TEST_SUITE=concepts
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test

- os: linux
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=c++17 TEST_SUITE=concepts
addons:
apt:
packages:
- g++-8
- libgmp-dev
- libmpfr-dev
- libmpc-dev
sources:
- ubuntu-toolchain-r-test



- os: osx
env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++14 TEST_SUITE=arithmetic_tests
osx_image: xcode9.3
Expand Down
3 changes: 2 additions & 1 deletion include/boost/multiprecision/number.hpp
Expand Up @@ -17,6 +17,7 @@
#include <boost/type_traits/is_unsigned.hpp>
#include <boost/type_traits/is_floating_point.hpp>
#include <boost/type_traits/is_integral.hpp>
#include <boost/type_traits/is_complex.hpp>
#include <boost/type_traits/make_unsigned.hpp>
#include <boost/throw_exception.hpp>
#include <boost/multiprecision/detail/generic_interconvert.hpp>
Expand Down Expand Up @@ -642,7 +643,7 @@ class number
#if BOOST_WORKAROUND(BOOST_MSVC, < 1900) || (defined(__APPLE_CC__) && BOOST_WORKAROUND(__clang_major__, < 9))
template <class T>
#else
template <class T, class = typename boost::disable_if_c<std::is_constructible<T, self_type const&>::value || !std::is_default_constructible<T>::value, T>::type>
template <class T, class = typename boost::disable_if_c<boost::is_constructible<T, self_type const&>::value || !boost::is_default_constructible<T>::value || (!boost::is_arithmetic<T>::value && !boost::is_complex<T>::value), T>::type>
#endif
explicit operator T ()const
{
Expand Down

0 comments on commit 06d0340

Please sign in to comment.