1 ///////////////////////////////////////////////////////////////
2 // Copyright 2012 John Maddock. Distributed under the Boost
3 // Software License, Version 1.0. (See accompanying file
4 // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt
6 #include <boost/multiprecision/cpp_int.hpp>
8 #include "test_arithmetic.hpp"
10 template <unsigned MinBits
, unsigned MaxBits
, boost::multiprecision::cpp_integer_type SignType
, class Allocator
, boost::multiprecision::expression_template_option ET
>
11 struct is_checked_cpp_int
<boost::multiprecision::number
<boost::multiprecision::cpp_int_backend
<MinBits
, MaxBits
, SignType
, boost::multiprecision::checked
, Allocator
>, ET
> > : public boost::mpl::true_
14 template <unsigned MinBits
, unsigned MaxBits
, boost::multiprecision::cpp_integer_type SignType
, class Allocator
, boost::multiprecision::expression_template_option ExpressionTemplates
>
15 struct is_twos_complement_integer
<boost::multiprecision::number
<boost::multiprecision::cpp_int_backend
<MinBits
, MaxBits
, SignType
, boost::multiprecision::checked
, Allocator
>, ExpressionTemplates
> > : public boost::mpl::false_
19 struct related_type
<boost::multiprecision::cpp_int
>
21 typedef boost::multiprecision::int256_t type
;
23 template <unsigned MinBits
, unsigned MaxBits
, boost::multiprecision::cpp_integer_type SignType
, boost::multiprecision::cpp_int_check_type Checked
, class Allocator
, boost::multiprecision::expression_template_option ET
>
24 struct related_type
<boost::multiprecision::number
<boost::multiprecision::cpp_int_backend
<MinBits
, MaxBits
, SignType
, Checked
, Allocator
>, ET
> >
26 typedef boost::multiprecision::number
<boost::multiprecision::cpp_int_backend
<MinBits
/ 2, MaxBits
/ 2, SignType
, Checked
, Allocator
>, ET
> type
;
31 test
<boost::multiprecision::number
<boost::multiprecision::cpp_int_backend
<31, 31, boost::multiprecision::signed_magnitude
, boost::multiprecision::unchecked
, void> > >();
32 return boost::report_errors();