1 /////////////////////////////////////////////////////////////////////////////// 2 // Copyright 2018 John Maddock. Distributed under the Boost 3 // Software License, Version 1.0. (See accompanying file 4 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 6 #include <boost/multiprecision/cpp_bin_float.hpp> 7 #include <boost/multiprecision/cpp_int.hpp> 8 #include <boost/multiprecision/cpp_dec_float.hpp> 9 #include <boost/multiprecision/cpp_complex.hpp> 10 #ifdef BOOST_HAS_FLOAT128 11 #include <boost/multiprecision/float128.hpp> 12 #endif 13 #ifdef TEST_GMP 14 #include <boost/multiprecision/gmp.hpp> 15 #endif 16 #ifdef TEST_MPFR 17 #include <boost/multiprecision/mpfr.hpp> 18 #endif 19 #ifdef TEST_MPC 20 #include <boost/multiprecision/mpc.hpp> 21 #endif 22 23 struct A 24 { 25 virtual void g() = 0; 26 }; 27 28 void f(A&); 29 void f(boost::multiprecision::cpp_bin_float_50); 30 void f(boost::multiprecision::cpp_int); 31 void f(boost::multiprecision::cpp_rational); 32 void f(boost::multiprecision::cpp_dec_float_50); 33 void f(boost::multiprecision::cpp_complex_100); 34 #ifdef TEST_FLOAT128 35 void f(boost::multiprecision::float128); 36 #endif 37 #ifdef TEST_GMP 38 void f(boost::multiprecision::mpz_int); 39 void f(boost::multiprecision::mpf_float); 40 void f(boost::multiprecision::mpq_rational); 41 #endif 42 #ifdef TEST_MPFR 43 void f(boost::multiprecision::mpfr_float); 44 #endif 45 #ifdef TEST_MPC 46 void f(boost::multiprecision::mpc_complex); 47 #endif 48 h(A & a)49void h(A& a) 50 { 51 f(a); 52 } 53