prog.cpp: In function 'int main()':
prog.cpp:8:26: error: no match for 'operator<<' (operand types are 'uint128_t {aka boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> >}' and 'uint128_t {aka boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> >}')
auto leftShift = number << ten; // fail
^
prog.cpp:8:26: note: candidate: operator<<(int, int) <built-in>
prog.cpp:8:26: note: no known conversion for argument 2 from 'uint128_t {aka boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> >}' to 'int'
In file included from /usr/include/boost/multiprecision/cpp_int.hpp:12:0,
from prog.cpp:1:
/usr/include/boost/multiprecision/number.hpp:1652:22: note: candidate: template<class Backend, boost::multiprecision::expression_template_option ExpressionTemplates> std::ostream& boost::multiprecision::operator<<(std::ostream&, const boost::multiprecision::number<Backend, ExpressionTemplates>&)
inline std::ostream& operator << (std::ostream& os, const number<Backend, ExpressionTemplates>& r)
^
/usr/include/boost/multiprecision/number.hpp:1652:22: note: template argument deduction/substitution failed:
prog.cpp:8:29: note: cannot convert 'number' (type 'uint128_t {aka boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> >}') to type 'std::ostream& {aka std::basic_ostream<char>&}'
auto leftShift = number << ten; // fail
^
In file included from /usr/include/boost/multiprecision/detail/default_ops.hpp:2074:0,
from /usr/include/boost/multiprecision/detail/generic_interconvert.hpp:9,
from /usr/include/boost/multiprecision/number.hpp:22,
from /usr/include/boost/multiprecision/cpp_int.hpp:12,
from prog.cpp:1:
/usr/include/boost/multiprecision/detail/et_ops.hpp:606:7: note: candidate: template<class tag, class Arg1, class Arg2, class Arg3, class Arg4, class I> typename boost::enable_if_c<(boost::is_integral<I>::value && (boost::multiprecision::number_category<typename boost::multiprecision::detail::expression<tag, Arg1, Arg2, Arg3, Arg4>::result_type>::value == number_kind_integer)), boost::multiprecision::detail::expression<boost::multiprecision::detail::shift_left, boost::multiprecision::detail::expression<tag, Arg1, Arg2, Arg3, Arg4>, I> >::type boost::multiprecision::operator<<(const boost::multiprecision::detail::expression<tag, Arg1, Arg2, Arg3, Arg4>&, const I&)
operator << (const detail::expression<tag, Arg1, Arg2, Arg3, Arg4>& a, const I& b)
^
/usr/include/boost/multiprecision/detail/et_ops.hpp:606:7: note: template argument deduction/substitution failed:
prog.cpp:8:29: note: 'uint128_t {aka boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> >}' is not derived from 'const boost::multiprecision::detail::expression<tag, Arg1, Arg2, Arg3, Arg4>'
auto leftShift = number << ten; // fail
^
In file included from /usr/include/boost/multiprecision/detail/default_ops.hpp:2074:0,
from /usr/include/boost/multiprecision/detail/generic_interconvert.hpp:9,
from /usr/include/boost/multiprecision/number.hpp:22,
from /usr/include/boost/multiprecision/cpp_int.hpp:12,
from prog.cpp:1:
/usr/include/boost/multiprecision/detail/et_ops.hpp:599:4: note: candidate: template<class B, class I> typename boost::enable_if_c<(boost::is_integral<Arithmetic>::value && (boost::multiprecision::number_category<Num>::value == number_kind_integer)), boost::multiprecision::detail::expression<boost::multiprecision::detail::shift_left, boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)1u>, I> >::type boost::multiprecision::operator<<(const boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)1u>&, const I&)
operator << (const number<B, et_on>& a, const I& b)
^
/usr/include/boost/multiprecision/detail/et_ops.hpp:599:4: note: template argument deduction/substitution failed:
prog.cpp:8:29: note: template argument '(boost::multiprecision::expression_template_option)0u' does not match '#'integer_cst' not supported by dump_decl#<declaration error>'
auto leftShift = number << ten; // fail
^
prog.cpp:8:29: note: 'uint128_t {aka boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> >}' is not derived from 'const boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)1u>'
In file included from /usr/include/boost/multiprecision/detail/default_ops.hpp:2073:0,
from /usr/include/boost/multiprecision/detail/generic_interconvert.hpp:9,
from /usr/include/boost/multiprecision/number.hpp:22,
from /usr/include/boost/multiprecision/cpp_int.hpp:12,
from prog.cpp:1:
/usr/include/boost/multiprecision/detail/no_et_ops.hpp:601:4: note: candidate: template<class B, class I> typename boost::enable_if_c<(boost::is_integral<Arithmetic>::value && (boost::multiprecision::number_category<Num>::value == number_kind_integer)), boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)0u> >::type boost::multiprecision::operator<<(boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)0u>&&, const I&)
operator << (number<B, et_off>&& a, const I& b)
^
/usr/include/boost/multiprecision/detail/no_et_ops.hpp:601:4: note: template argument deduction/substitution failed:
/usr/include/boost/multiprecision/detail/no_et_ops.hpp: In substitution of 'template<class B, class I> typename boost::enable_if_c<(boost::is_integral<Arithmetic>::value && (boost::multiprecision::number_category<Num>::value == number_kind_integer)), boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)0u> >::type boost::multiprecision::operator<<(boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)0u>&&, const I&) [with B = boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void>; I = boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> >]':
prog.cpp:8:29: required from here
/usr/include/boost/multiprecision/detail/no_et_ops.hpp:601:4: error: no type named 'type' in 'struct boost::enable_if_c<false, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> > >'
/usr/include/boost/multiprecision/detail/no_et_ops.hpp:274:4: note: candidate: template<class B, class I> typename boost::enable_if_c<(boost::is_integral<Arithmetic>::value && (boost::multiprecision::number_category<Num>::value == number_kind_integer)), boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)0u> >::type boost::multiprecision::operator<<(const boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)0u>&, const I&)
operator << (const number<B, et_off>& a, const I& b)
^
/usr/include/boost/multiprecision/detail/no_et_ops.hpp:274:4: note: template argument deduction/substitution failed:
/usr/include/boost/multiprecision/detail/no_et_ops.hpp: In substitution of 'template<class B, class I> typename boost::enable_if_c<(boost::is_integral<Arithmetic>::value && (boost::multiprecision::number_category<Num>::value == number_kind_integer)), boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)0u> >::type boost::multiprecision::operator<<(const boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)0u>&, const I&) [with B = boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void>; I = boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> >]':
prog.cpp:8:29: required from here
/usr/include/boost/multiprecision/detail/no_et_ops.hpp:274:4: error: no type named 'type' in 'struct boost::enable_if_c<false, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> > >'
prog.cpp:9:27: error: no match for 'operator>>' (operand types are 'uint128_t {aka boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> >}' and 'uint128_t {aka boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> >}')
auto rightShift = number >> ten; // fail
^
prog.cpp:9:27: note: candidate: operator>>(int, int) <built-in>
prog.cpp:9:27: note: no known conversion for argument 2 from 'uint128_t {aka boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> >}' to 'int'
In file included from /usr/include/boost/multiprecision/cpp_int.hpp:12:0,
from prog.cpp:1:
/usr/include/boost/multiprecision/number.hpp:1681:22: note: candidate: template<class Backend, boost::multiprecision::expression_template_option ExpressionTemplates> std::istream& boost::multiprecision::operator>>(std::istream&, boost::multiprecision::number<Backend, ExpressionTemplates>&)
inline std::istream& operator >> (std::istream& is, number<Backend, ExpressionTemplates>& r)
^
/usr/include/boost/multiprecision/number.hpp:1681:22: note: template argument deduction/substitution failed:
prog.cpp:9:30: note: cannot convert 'number' (type 'uint128_t {aka boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> >}') to type 'std::istream& {aka std::basic_istream<char>&}'
auto rightShift = number >> ten; // fail
^
In file included from /usr/include/boost/multiprecision/detail/default_ops.hpp:2074:0,
from /usr/include/boost/multiprecision/detail/generic_interconvert.hpp:9,
from /usr/include/boost/multiprecision/number.hpp:22,
from /usr/include/boost/multiprecision/cpp_int.hpp:12,
from prog.cpp:1:
/usr/include/boost/multiprecision/detail/et_ops.hpp:624:7: note: candidate: template<class tag, class Arg1, class Arg2, class Arg3, class Arg4, class I> typename boost::enable_if_c<(boost::is_integral<I>::value && (boost::multiprecision::number_category<typename boost::multiprecision::detail::expression<tag, Arg1, Arg2, Arg3, Arg4>::result_type>::value == number_kind_integer)), boost::multiprecision::detail::expression<boost::multiprecision::detail::shift_right, boost::multiprecision::detail::expression<tag, Arg1, Arg2, Arg3, Arg4>, I> >::type boost::multiprecision::operator>>(const boost::multiprecision::detail::expression<tag, Arg1, Arg2, Arg3, Arg4>&, const I&)
operator >> (const detail::expression<tag, Arg1, Arg2, Arg3, Arg4>& a, const I& b)
^
/usr/include/boost/multiprecision/detail/et_ops.hpp:624:7: note: template argument deduction/substitution failed:
prog.cpp:9:30: note: 'uint128_t {aka boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> >}' is not derived from 'const boost::multiprecision::detail::expression<tag, Arg1, Arg2, Arg3, Arg4>'
auto rightShift = number >> ten; // fail
^
In file included from /usr/include/boost/multiprecision/detail/default_ops.hpp:2074:0,
from /usr/include/boost/multiprecision/detail/generic_interconvert.hpp:9,
from /usr/include/boost/multiprecision/number.hpp:22,
from /usr/include/boost/multiprecision/cpp_int.hpp:12,
from prog.cpp:1:
/usr/include/boost/multiprecision/detail/et_ops.hpp:616:7: note: candidate: template<class B, class I> typename boost::enable_if_c<(boost::is_integral<Arithmetic>::value && (boost::multiprecision::number_category<Num>::value == number_kind_integer)), boost::multiprecision::detail::expression<boost::multiprecision::detail::shift_right, boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)1u>, I> >::type boost::multiprecision::operator>>(const boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)1u>&, const I&)
operator >> (const number<B, et_on>& a, const I& b)
^
/usr/include/boost/multiprecision/detail/et_ops.hpp:616:7: note: template argument deduction/substitution failed:
prog.cpp:9:30: note: template argument '(boost::multiprecision::expression_template_option)0u' does not match '#'integer_cst' not supported by dump_decl#<declaration error>'
auto rightShift = number >> ten; // fail
^
prog.cpp:9:30: note: 'uint128_t {aka boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> >}' is not derived from 'const boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)1u>'
In file included from /usr/include/boost/multiprecision/detail/default_ops.hpp:2073:0,
from /usr/include/boost/multiprecision/detail/generic_interconvert.hpp:9,
from /usr/include/boost/multiprecision/number.hpp:22,
from /usr/include/boost/multiprecision/cpp_int.hpp:12,
from prog.cpp:1:
/usr/include/boost/multiprecision/detail/no_et_ops.hpp:609:4: note: candidate: template<class B, class I> typename boost::enable_if_c<(boost::is_integral<Arithmetic>::value && (boost::multiprecision::number_category<Num>::value == number_kind_integer)), boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)0u> >::type boost::multiprecision::operator>>(boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)0u>&&, const I&)
operator >> (number<B, et_off>&& a, const I& b)
^
/usr/include/boost/multiprecision/detail/no_et_ops.hpp:609:4: note: template argument deduction/substitution failed:
/usr/include/boost/multiprecision/detail/no_et_ops.hpp: In substitution of 'template<class B, class I> typename boost::enable_if_c<(boost::is_integral<Arithmetic>::value && (boost::multiprecision::number_category<Num>::value == number_kind_integer)), boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)0u> >::type boost::multiprecision::operator>>(boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)0u>&&, const I&) [with B = boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void>; I = boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> >]':
prog.cpp:9:30: required from here
/usr/include/boost/multiprecision/detail/no_et_ops.hpp:609:4: error: no type named 'type' in 'struct boost::enable_if_c<false, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> > >'
/usr/include/boost/multiprecision/detail/no_et_ops.hpp:284:4: note: candidate: template<class B, class I> typename boost::enable_if_c<(boost::is_integral<Arithmetic>::value && (boost::multiprecision::number_category<Num>::value == number_kind_integer)), boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)0u> >::type boost::multiprecision::operator>>(const boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)0u>&, const I&)
operator >> (const number<B, et_off>& a, const I& b)
^
/usr/include/boost/multiprecision/detail/no_et_ops.hpp:284:4: note: template argument deduction/substitution failed:
/usr/include/boost/multiprecision/detail/no_et_ops.hpp: In substitution of 'template<class B, class I> typename boost::enable_if_c<(boost::is_integral<Arithmetic>::value && (boost::multiprecision::number_category<Num>::value == number_kind_integer)), boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)0u> >::type boost::multiprecision::operator>>(const boost::multiprecision::number<B, (boost::multiprecision::expression_template_option)0u>&, const I&) [with B = boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void>; I = boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> >]':
prog.cpp:9:30: required from here
/usr/include/boost/multiprecision/detail/no_et_ops.hpp:284:4: error: no type named 'type' in 'struct boost::enable_if_c<false, boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<128u, 128u, (boost::multiprecision::cpp_integer_type)0u, (boost::multiprecision::cpp_int_check_type)0u, void> > >'