Boost logo

Boost Users :

Subject: Re: [Boost-users] [boost][multiprecision] compile error with gcc 4.8.4
From: John Maddock (jz.maddock_at_[hidden])
Date: 2016-09-17 06:59:59


On 16/09/2016 19:50, Rob Conde wrote:
>
> The first case (int -> float) was fixed, but the second (float->int)
> wasn't.
>

Oh :(

I fear this may have to stay broken for this release - what I need to do
is devise a test case that tests conversion of everything-to-everything
- and that's going to be a lot of permutations!

John.

>
> Rob
>
> ------------------------------------------------------------------------
> *From:* Boost-users <boost-users-bounces_at_[hidden]> on behalf of
> John Maddock <jz.maddock_at_[hidden]>
> *Sent:* Friday, September 16, 2016 7:54:26 AM
> *To:* boost-users_at_[hidden]
> *Subject:* Re: [Boost-users] [boost][multiprecision] compile error
> with gcc 4.8.4
>
>
> On 15/09/2016 17:20, Rob Conde wrote:
> >
> > I tried with 1.62 beta and ran into the following problems:
> >
>
> I think this fixes these:
> https://github.com/boostorg/multiprecision/commit/b2108867c7415cc1ed28244843555289fdb8d356
>
> Or at least it does for me, can you verify with your setup as well please?
>
> Whether there is time for this to make 1.62 is another matter....
>
> John.
>
> >
> > Building with std=c++98 for the following case:
> >
> >
> >
> --------------------------------------------------------------------------------
> >
> > #include <boost/multiprecision/cpp_int.hpp>
> > #include <boost/multiprecision/cpp_bin_float.hpp>
> >
> > typedef boost::multiprecision::int128_t int128_t;
> > typedef boost::multiprecision::cpp_bin_float_quad float128_t;
> >
> > void func()
> > {
> > int128_t iVal;
> > float128_t floatVal(iVal.convert_to<float128_t>());
> > }
> >
> --------------------------------------------------------------------------------
> >
> > In file included from
> > ./boost/type_traits/detail/common_type_impl.hpp:12:0,
> > from ./boost/type_traits/common_type.hpp:18,
> > from ./boost/multiprecision/cpp_int.hpp:22,
> > from mpTest.cpp:1:
> > ./boost/type_traits/detail/common_arithmetic_type.hpp: In
> > instantiation of ‘class
> >
> boost::type_traits_detail::common_arithmetic_type<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383>,
> > (boost::multiprecision::expression_template_option)0u>, __int128
> > unsigned>’:
> > ./boost/type_traits/detail/common_type_impl.hpp:99:35: required from
> > ‘struct
> >
> boost::type_traits_detail::common_type_impl5<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383>,
> > (boost::multiprecision::expression_template_option)0u>, __int128
> > unsigned>’
> > ./boost/type_traits/detail/common_type_impl.hpp:90:35: required from
> > ‘struct
> >
> boost::type_traits_detail::common_type_impl4<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383>,
> > (boost::multiprecision::expression_template_option)0u>, __int128
> > unsigned>’
> > ./boost/type_traits/detail/common_type_impl.hpp:79:35: required from
> > ‘struct
> >
> boost::type_traits_detail::common_type_impl3<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383>,
> > (boost::multiprecision::expression_template_option)0u>, __int128
> > unsigned>’
> > ./boost/type_traits/detail/common_type_impl.hpp:52:35: required from
> > ‘struct
> >
> boost::type_traits_detail::common_type_class<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383>,
> > (boost::multiprecision::expression_template_option)0u>, __int128
> > unsigned>’
> > ./boost/type_traits/detail/common_type_impl.hpp:68:35: required from
> > ‘struct
> >
> boost::type_traits_detail::common_type_impl<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383>,
> > (boost::multiprecision::expression_template_option)0u>, __int128
> > unsigned>’
> > ./boost/type_traits/common_type.hpp:133:37: required from ‘struct
> >
> boost::type_traits_detail::common_type_decay_helper<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383>,
> > (boost::multiprecision::expression_template_option)0u>, __int128
> > unsigned,
> >
> boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383>,
> > (boost::multiprecision::expression_template_option)0u>, __int128
> > unsigned>’
> > ./boost/type_traits/common_type.hpp:139:37: required from ‘struct
> >
> boost::common_type<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383>,
> > (boost::multiprecision::expression_template_option)0u>, __int128
> > unsigned, void, void, void, void, void, void, void>’
> > ./boost/multiprecision/cpp_int/misc.hpp:547:138: required from
> > ‘typename
> >
> boost::enable_if_c<(boost::multiprecision::backends::is_trivial_cpp_int<boost::multiprecision::backends::cpp_int_backend<MinBits1,
> > MaxBits1, SignType1, Checked1, Allocator1> >::value &&
> >
> boost::multiprecision::is_signed_number<boost::multiprecision::backends::cpp_int_backend<MinBits1,
> > MaxBits1, SignType1, Checked1, Allocator1> >::value)>::type
> > boost::multiprecision::backends::eval_convert_to(R*, const
> > boost::multiprecision::backends::cpp_int_backend<MinBits1, MaxBits1,
> > SignType1, Checked1, Allocator1>&) [with R =
> >
> boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383>,
> > (boost::multiprecision::expression_template_option)0u>; unsigned int
> > MinBits1 = 128u; unsigned int MaxBits1 = 128u;
> > boost::multiprecision::cpp_integer_type SignType1 =
> > (boost::multiprecision::cpp_integer_type)1u;
> > boost::multiprecision::cpp_int_check_type Checked1 =
> > (boost::multiprecision::cpp_int_check_type)0u; Allocator1 = void;
> > typename
> >
> boost::enable_if_c<(boost::multiprecision::backends::is_trivial_cpp_int<boost::multiprecision::backends::cpp_int_backend<MinBits1,
> > MaxBits1, SignType1, Checked1, Allocator1> >::value &&
> >
> boost::multiprecision::is_signed_number<boost::multiprecision::backends::cpp_int_backend<MinBits1,
> > MaxBits1, SignType1, Checked1, Allocator1> >::value)>::type = void]’
> > ./boost/multiprecision/number.hpp:585:40: required from ‘void
> > boost::multiprecision::number<Backend,
> > ExpressionTemplates>::convert_to_imp(T*) const [with T =
> >
> boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383>,
> > (boost::multiprecision::expression_template_option)0u>; Backend =
> > boost::multiprecision::backends::cpp_int_backend<128u, 128u,
> > (boost::multiprecision::cpp_integer_type)1u,
> > (boost::multiprecision::cpp_int_check_type)0u, void>;
> > boost::multiprecision::expression_template_option ExpressionTemplates
> > = (boost::multiprecision::expression_template_option)0u]’
> > ./boost/multiprecision/number.hpp:601:29: required from ‘T
> > boost::multiprecision::number<Backend,
> > ExpressionTemplates>::convert_to() const [with T =
> >
> boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383>,
> > (boost::multiprecision::expression_template_option)0u>; Backend =
> > boost::multiprecision::backends::cpp_int_backend<128u, 128u,
> > (boost::multiprecision::cpp_integer_type)1u,
> > (boost::multiprecision::cpp_int_check_type)0u, void>;
> > boost::multiprecision::expression_template_option ExpressionTemplates
> > = (boost::multiprecision::expression_template_option)0u]’
> > mpTest.cpp:11:52: required from here
> > ./boost/type_traits/detail/common_arithmetic_type.hpp:211:60: error:
> > no match for ternary ‘operator?:’ (operand types are ‘bool’,
> >
> ‘boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383>,
> > (boost::multiprecision::expression_template_option)0u>’, and ‘__int128
> > unsigned’)
> > typedef typename arithmetic_type< sizeof(select( cond()? T(): U()
> > )) >::type type;
> >
> >
> >
> > Building without a std specified I get the following case:
> >
> >
> >
> --------------------------------------------------------------------------------
> >
> > #include <boost/multiprecision/cpp_int.hpp>
> > #include <boost/multiprecision/cpp_bin_float.hpp>
> >
> > typedef boost::multiprecision::int128_t int128_t;
> > typedef boost::multiprecision::cpp_bin_float_quad float128_t;
> >
> > void func()
> > {
> > float128_t floatVal;
> >
> > int128_t roundedNanoseconds(floatVal.convert_to<int128_t>());
> > }
> >
> --------------------------------------------------------------------------------
> >
> > In file included from
> > ./boost/multiprecision/detail/generic_interconvert.hpp:9:0,
> > from ./boost/multiprecision/number.hpp:22,
> > from ./boost/multiprecision/cpp_int.hpp:12,
> > from mpTest.cpp:1:
> > ./boost/multiprecision/detail/default_ops.hpp: In instantiation of
> > ‘void
> >
> boost::multiprecision::default_ops::eval_convert_to(boost::multiprecision::default_ops::terminal<boost::multiprecision::number<B1,
> > et> >*, const B2&) [with B1 =
> > boost::multiprecision::backends::cpp_int_backend<128u, 128u,
> > (boost::multiprecision::cpp_integer_type)1u,
> > (boost::multiprecision::cpp_int_check_type)0u, void>; B2 =
> > boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383>; boost::multiprecision::expression_template_option et =
> > (boost::multiprecision::expression_template_option)0u]’:
> > ./boost/multiprecision/detail/default_ops.hpp:896:31: required from
> > ‘void boost::multiprecision::default_ops::eval_convert_to(R*, const
> > B&) [with R =
> >
> boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u,
> > 128u, (boost::multiprecision::cpp_integer_type)1u,
> > (boost::multiprecision::cpp_int_check_type)0u, void> >; B =
> > boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383>]’
> > ./boost/multiprecision/number.hpp:585:40: required from ‘void
> > boost::multiprecision::number<Backend,
> > ExpressionTemplates>::convert_to_imp(T*) const [with T =
> >
> boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u,
> > 128u, (boost::multiprecision::cpp_integer_type)1u,
> > (boost::multiprecision::cpp_int_check_type)0u, void> >; Backend =
> > boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383>; boost::multiprecision::expression_template_option
> > ExpressionTemplates =
> > (boost::multiprecision::expression_template_option)0u]’
> > ./boost/multiprecision/number.hpp:601:29: required from ‘T
> > boost::multiprecision::number<Backend,
> > ExpressionTemplates>::convert_to() const [with T =
> >
> boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u,
> > 128u, (boost::multiprecision::cpp_integer_type)1u,
> > (boost::multiprecision::cpp_int_check_type)0u, void> >; Backend =
> > boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383>; boost::multiprecision::expression_template_option
> > ExpressionTemplates =
> > (boost::multiprecision::expression_template_option)0u]’
> > mpTest.cpp:11:62: required from here
> > ./boost/multiprecision/detail/default_ops.hpp:922:134: error: no
> > matching function for call to
> >
> ‘generic_interconvert(boost::multiprecision::backends::cpp_int_backend<128u,
>
> > 128u, (boost::multiprecision::cpp_integer_type)1u,
> > (boost::multiprecision::cpp_int_check_type)0u, void>&, const
> > boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383>&,
> >
> boost::multiprecision::number_category<boost::multiprecision::backends::cpp_int_backend<128u,
> > 128u, (boost::multiprecision::cpp_integer_type)1u,
> > (boost::multiprecision::cpp_int_check_type)0u, void> >,
> >
> boost::multiprecision::number_category<boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383> >)’
> >
> boost::multiprecision::detail::generic_interconvert(result->value.backend(),
>
> > backend, number_category<B1>(), number_category<B2>());
> > ^
> > ./boost/multiprecision/detail/default_ops.hpp:922:134: note:
> > candidates are:
> > In file included from ./boost/multiprecision/number.hpp:22:0,
> > from ./boost/multiprecision/cpp_int.hpp:12,
> > from mpTest.cpp:1:
> > ./boost/multiprecision/detail/generic_interconvert.hpp:30:6: note:
> > template<class To, class From> void
> > boost::multiprecision::detail::generic_interconvert(To&, const From&,
> > const mpl_::int_<1>&, const mpl_::int_<0>&)
> > void generic_interconvert(To& to, const From& from, const
> > mpl::int_<number_kind_floating_point>& /*to_type*/, const
> > mpl::int_<number_kind_integer>& /*from_type*/)
> > ^
> > ./boost/multiprecision/detail/generic_interconvert.hpp:30:6: note:
> > template argument deduction/substitution failed:
> > In file included from
> > ./boost/multiprecision/detail/generic_interconvert.hpp:9:0,
> > from ./boost/multiprecision/number.hpp:22,
> > from ./boost/multiprecision/cpp_int.hpp:12,
> > from mpTest.cpp:1:
> > ./boost/multiprecision/detail/default_ops.hpp:922:134: note: cannot
> > convert
> >
> ‘boost::multiprecision::number_category<boost::multiprecision::backends::cpp_int_backend<128u,
> > 128u, (boost::multiprecision::cpp_integer_type)1u,
> > (boost::multiprecision::cpp_int_check_type)0u, void> >()’ (type
> >
> ‘boost::multiprecision::number_category<boost::multiprecision::backends::cpp_int_backend<128u,
> > 128u, (boost::multiprecision::cpp_integer_type)1u,
> > (boost::multiprecision::cpp_int_check_type)0u, void> >’) to type
> > ‘const mpl_::int_<1>&’
> >
> boost::multiprecision::detail::generic_interconvert(result->value.backend(),
>
> > backend, number_category<B1>(), number_category<B2>());
> > ^
> > In file included from ./boost/multiprecision/number.hpp:22:0,
> > from ./boost/multiprecision/cpp_int.hpp:12,
> > from mpTest.cpp:1:
> > ./boost/multiprecision/detail/generic_interconvert.hpp:78:6: note:
> > template<class To, class From> void
> > boost::multiprecision::detail::generic_interconvert(To&, const From&,
> > const mpl_::int_<0>&, const mpl_::int_<0>&)
> > void generic_interconvert(To& to, const From& from, const
> > mpl::int_<number_kind_integer>& /*to_type*/, const
> > mpl::int_<number_kind_integer>& /*from_type*/)
> > ^
> > ./boost/multiprecision/detail/generic_interconvert.hpp:78:6: note:
> > template argument deduction/substitution failed:
> > In file included from
> > ./boost/multiprecision/detail/generic_interconvert.hpp:9:0,
> > from ./boost/multiprecision/number.hpp:22,
> > from ./boost/multiprecision/cpp_int.hpp:12,
> > from mpTest.cpp:1:
> > ./boost/multiprecision/detail/default_ops.hpp:922:134: note: cannot
> > convert
> >
> ‘boost::multiprecision::number_category<boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383> >()’ (type
> >
> ‘boost::multiprecision::number_category<boost::multiprecision::backends::cpp_bin_float<113u,
> > (boost::multiprecision::backends::digit_base_type)2u, void, short int,
> > -16382, 16383> >’) to type ‘const mpl_::int_<0>&’
> >
> boost::multiprecision::detail::generic_interconvert(result->value.backend(),
>
> > backend, number_category<B1>(), number_category<B2>());
> > ^
> > In file included from ./boost/multiprecision/number.hpp:22:0,
> > from ./boost/multiprecision/cpp_int.hpp:12,
> > from mpTest.cpp:1:
> > ./boost/multiprecision/detail/generic_interconvert.hpp:126:6: note:
> > template<class To, class From> void
> > boost::multiprecision::detail::generic_interconvert(To&, const From&,
> > const mpl_::int_<1>&, const mpl_::int_<1>&)
> > void generic_interconvert(To& to, const From& from, const
> > mpl::int_<number_kind_floating_point>& /*to_type*/, const
> > mpl::int_<number_kind_floating_point>& /*from_type*/)
> > ^
> > ./boost/multiprecision/detail/generic_interconvert.hpp:126:6: note:
> > template argument deduction/substitution failed:
> > In file included from
> > ./boost/multiprecision/detail/generic_interconvert.hpp:9:0,
> > from ./boost/multiprecision/number.hpp:22,
> > from ./boost/multiprecision/cpp_int.hpp:12,
> > from mpTest.cpp:1:
> > ./boost/multiprecision/detail/default_ops.hpp:922:134: note: cannot
> > convert
> >
> ‘boost::multiprecision::number_category<boost::multiprecision::backends::cpp_int_backend<128u,
> > 128u, (boost::multiprecision::cpp_integer_type)1u,
> > (boost::multiprecision::cpp_int_check_type)0u, void> >()’ (type
> >
> ‘boost::multiprecision::number_category<boost::multiprecision::backends::cpp_int_backend<128u,
> > 128u, (boost::multiprecision::cpp_integer_type)1u,
> > (boost::multiprecision::cpp_int_check_type)0u, void> >’) to type
> > ‘const mpl_::int_<1>&’
> >
> boost::multiprecision::detail::generic_interconvert(result->value.backend(),
>
> > backend, number_category<B1>(), number_category<B2>());
> > ^
> > In file included from ./boost/multiprecision/number.hpp:22:0,
> > from ./boost/multiprecision/cpp_int.hpp:12,
> > from mpTest.cpp:1:
> > ./boost/multiprecision/detail/generic_interconvert.hpp:209:6: note:
> > template<class To, class From> void
> > boost::multiprecision::detail::generic_interconvert(To&, const From&,
> > const mpl_::int_<2>&, const mpl_::int_<2>&)
> > void generic_interconvert(To& to, const From& from, const
> > mpl::int_<number_kind_rational>& /*to_type*/, const
> > mpl::int_<number_kind_rational>& /*from_type*/)
> > ^
> > ./boost/multiprecision/detail/generic_interconvert.hpp:209:6: note:
> > template argument deduction/substitution failed:
> > In file included from
> > ./boost/multiprecision/detail/generic_interconvert.hpp:9:0,
> > from ./boost/multiprecision/number.hpp:22,
> > from ./boost/multiprecision/cpp_int.hpp:12,
> > from mpTest.cpp:1:
> > ./boost/multiprecision/detail/default_ops.hpp:922:134: note: cannot
> > convert
> >
> ‘boost::multiprecision::number_category<boost::multiprecision::backends::cpp_int_backend<128u,
> > 128u, (boost::multiprecision::cpp_integer_type)1u,
> > (boost::multiprecision::cpp_int_check_type)0u, void> >()’ (type
> >
> ‘boost::multiprecision::number_category<boost::multiprecision::backends::cpp_int_backend<128u,
> > 128u, (boost::multiprecision::cpp_integer_type)1u,
> > (boost::multiprecision::cpp_int_check_type)0u, void> >’) to type
> > ‘const mpl_::int_<2>&’
> >
> boost::multiprecision::detail::generic_interconvert(result->value.backend(),
>
> > backend, number_category<B1>(), number_category<B2>());
> > ^
> > In file included from ./boost/multiprecision/number.hpp:22:0,
> > from ./boost/multiprecision/cpp_int.hpp:12,
> > from mpTest.cpp:1:
> > ./boost/multiprecision/detail/generic_interconvert.hpp:220:6: note:
> > template<class To, class From> void
> > boost::multiprecision::detail::generic_interconvert(To&, const From&,
> > const mpl_::int_<2>&, const mpl_::int_<0>&)
> > void generic_interconvert(To& to, const From& from, const
> > mpl::int_<number_kind_rational>& /*to_type*/, const
> > mpl::int_<number_kind_integer>& /*from_type*/)
> > ^
> > ./boost/multiprecision/detail/generic_interconvert.hpp:220:6: note:
> > template argument deduction/substitution failed:
> > In file included from
> > ./boost/multiprecision/detail/generic_interconvert.hpp:9:0,
> > from ./boost/multiprecision/number.hpp:22,
> > from ./boost/multiprecision/cpp_int.hpp:12,
> > from mpTest.cpp:1:
> > ./boost/multiprecision/detail/default_ops.hpp:922:134: note: cannot
> > convert
> >
> ‘boost::multiprecision::number_category<boost::multiprecision::backends::cpp_int_backend<128u,
> > 128u, (boost::multiprecision::cpp_integer_type)1u,
> > (boost::multiprecision::cpp_int_check_type)0u, void> >()’ (type
> >
> ‘boost::multiprecision::number_category<boost::multiprecision::backends::cpp_int_backend<128u,
> > 128u, (boost::multiprecision::cpp_integer_type)1u,
> > (boost::multiprecision::cpp_int_check_type)0u, void> >’) to type
> > ‘const mpl_::int_<2>&’
> >
> boost::multiprecision::detail::generic_interconvert(result->value.backend(),
>
> > backend, number_category<B1>(), number_category<B2>());
> > ^
> >
> > Rob
> >
> >
> >
> > ------------------------------------------------------------------------
> > *From:* Boost-users <boost-users-bounces_at_[hidden]> on behalf of
> > John Maddock <jz.maddock_at_[hidden]>
> > *Sent:* Thursday, August 18, 2016 12:14:06 PM
> > *To:* boost-users_at_[hidden]
> > *Subject:* Re: [Boost-users] [boost][multiprecision] compile error
> > with gcc 4.8.4
> >
> >
> > On 18/08/2016 15:05, Rob Conde wrote:
> > >
> > > Any luck? It would be great if there was a fix in boost 1.62.
> > >
> >
> > Fixed in
> >
> https://github.com/boostorg/multiprecision/commit/339818c0180d0719852b3e648b8d76f2ba02e32d
> >
> > If the tests cycle OK, I'll try to get this into 1.62, but it's
> tight now.
> >
> > John.
> >
> > >
> > > Thanks,
> > >
> > > Rob
> > >
> > >
> ------------------------------------------------------------------------
> > > *From:* Boost-users <boost-users-bounces_at_[hidden]> on behalf of
> > > John Maddock <jz.maddock_at_[hidden]>
> > > *Sent:* Tuesday, August 16, 2016 7:11:07 AM
> > > *To:* boost-users_at_[hidden]
> > > *Subject:* Re: [Boost-users] [boost][multiprecision] compile error
> > > with gcc 4.8.4
> > >
> > >
> > > On 16/08/2016 01:59, Rob Conde wrote:
> > > > #include <boost/multiprecision/cpp_int.hpp>
> > > > #include <boost/multiprecision/cpp_bin_float.hpp>
> > > >
> > > > typedef boost::multiprecision::int128_t int128_t;
> > > > typedef boost::multiprecision::cpp_bin_float_quad float128_t;
> > > >
> > > > int main()
> > > > {
> > > > int128_t intVal;
> > > > float128_t floatVal(intVal.convert_to<float128_t>());
> > > > return 0;
> > > > }
> > >
> > > That should work, as should:
> > >
> > > float128_t f(intVal);
> > >
> > > However, while both of these do work with msvc, they fail with GCC, so
> > > there is a bug (or 2) somewhere. I'll investigate later.
> > >
> > > John.
> > > _______________________________________________
> > > Boost-users mailing list
> > > Boost-users_at_[hidden]
> > > http://lists.boost.org/mailman/listinfo.cgi/boost-users
> > >
> > >
> > > _______________________________________________
> > > Boost-users mailing list
> > > Boost-users_at_[hidden]
> > > http://lists.boost.org/mailman/listinfo.cgi/boost-users
> >
> > _______________________________________________
> > Boost-users mailing list
> > Boost-users_at_[hidden]
> > http://lists.boost.org/mailman/listinfo.cgi/boost-users
> >
> >
> > _______________________________________________
> > Boost-users mailing list
> > Boost-users_at_[hidden]
> > http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net