• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)49 void h(A& a)
50 {
51    f(a);
52 }
53