K 10 svn:author V 6 jbeich K 8 svn:date V 27 2018-07-14T23:14:45.618776Z K 7 svn:log V 13383 net-p2p/qtum: unbreak with boost 1.68 on FreeBSD 10.* After https://github.com/boostorg/multiprecision/commit/3cedeeab3048 building with Clang 3.4.1 fails like the following: In file included from cpp-ethereum/libethereum/State.cpp:22: In file included from cpp-ethereum/libethereum/State.h:24: In file included from /usr/include/c++/v1/array:108: In file included from /usr/include/c++/v1/algorithm:628: In file included from /usr/include/c++/v1/memory:607: /usr/include/c++/v1/tuple:187:73: error: reference to type 'boost::multiprecision::number, 0>' requires an initializer _NOEXCEPT_(is_nothrow_default_constructible<_Hp>::value) : value() ^ /usr/include/c++/v1/type_traits:2359:44: note: in instantiation of member function 'std::__1::__tuple_leaf<0, boost::multiprecision::number, 0> &&, false>::__tuple_leaf' requested here typename __select_2nd()...))), true_type>::type ^ /usr/include/c++/v1/type_traits:2360:1: note: while substituting deduced template arguments into function template '__is_constructible_test' [with _Tp = std::__1::__tuple_leaf<0, boost::multiprecision::number, 0> &&, false>, _Args = <>] __is_constructible_test(_Tp&&, _Args&& ...); ^ /usr/include/c++/v1/type_traits:2419:14: note: in instantiation of template class 'std::__1::__libcpp_is_constructible, 0> &&, false>>' requested here : public __libcpp_is_constructible::value || is_reference<_Tp>::value, ^ /usr/include/c++/v1/type_traits:2445:14: note: in instantiation of template class 'std::__1::__is_constructible_void_check, 0> &&, false>>' requested here : public __is_constructible_void_check<__contains_void<_Tp, _Args...>::value ^ /usr/include/c++/v1/type_traits:2653:14: note: in instantiation of template class 'std::__1::is_constructible, 0> &&, false>>' requested here : public is_constructible<_Tp> ^ /usr/local/include/boost/multiprecision/number.hpp:645:119: note: (skipping 1 context in backtrace; use -ftemplate-backtrace-limit=0 to see all) template ::value || !std::is_default_constructible::value, T>::type> ^ /usr/local/include/boost/multiprecision/number.hpp:647:13: note: in instantiation of default argument for 'operator type-parameter-0-0, 0> &&, false> >' required here explicit operator T ()const ^~~~~~~~~~~~~~~~~~ /usr/local/include/boost/multiprecision/number.hpp:647:13: note: while substituting deduced template arguments into function template 'operator type-parameter-0-0' [with T = std::__1::__tuple_leaf<0, boost::multiprecision::number, 0> &&, false>, $1 = ] explicit operator T ()const ^ /usr/include/c++/v1/tuple:573:15: note: in instantiation of function template specialization 'std::__1::__tuple_impl, boost::multiprecision::number, 0> &&, boost::multiprecision::number, 0> &&, dev::FixedHash<32> &&, dev::FixedHash<32> &&, dev::eth::Account::Changedness &&>::__tuple_impl<0, 1, 2, 3, 4, boost::multiprecision::number, 0> &&, boost::multiprecision::number, 0> &&, dev::FixedHash<32> &&, dev::FixedHash<32> &&, dev::eth::Account::Changedness &&, boost::multiprecision::number, 0>, boost::multiprecision::number, 0>, dev::FixedHash<32>, dev::FixedHash<32>, dev::eth::Account::Changedness>' requested here : base_(typename __make_tuple_indices::type(), ^ /usr/include/c++/v1/tuple:882:12: note: in instantiation of function template specialization 'std::__1::tuple, 0> &&, boost::multiprecision::number, 0> &&, dev::FixedHash<32> &&, dev::FixedHash<32> &&, dev::eth::Account::Changedness &&>::tuple, 0>, boost::multiprecision::number, 0>, dev::FixedHash<32>, dev::FixedHash<32>, dev::eth::Account::Changedness, false>' requested here return tuple<_Tp&&...>(_VSTD::forward<_Tp>(__t)...); ^ cpp-ethereum/libethereum/State.cpp:186:8: note: in instantiation of function template specialization 'std::__1::forward_as_tuple, 0>, boost::multiprecision::number, 0>, dev::FixedHash<32>, dev::FixedHash<32>, dev::eth::Account::Changedness>' requested here std::forward_as_tuple(state[0].toInt(), state[1].toInt(), state[2].toHash(), state[3].toHash(), Account::Unchanged) ^ In file included from cpp-ethereum/libethereum/State.cpp:22: In file included from cpp-ethereum/libethereum/State.h:24: In file included from /usr/include/c++/v1/array:108: In file included from /usr/include/c++/v1/algorithm:628: In file included from /usr/include/c++/v1/memory:607: /usr/include/c++/v1/tuple:188:9: error: static_assert failed "Attempted to default construct a reference element in a tuple" {static_assert(!is_reference<_Hp>::value, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/v1/tuple:187:73: error: reference to type 'boost::multiprecision::number, 0>' requires an initializer _NOEXCEPT_(is_nothrow_default_constructible<_Hp>::value) : value() ^ /usr/include/c++/v1/type_traits:2359:44: note: in instantiation of member function 'std::__1::__tuple_leaf<1, boost::multiprecision::number, 0> &&, false>::__tuple_leaf' requested here typename __select_2nd()...))), true_type>::type ^ /usr/include/c++/v1/type_traits:2360:1: note: while substituting deduced template arguments into function template '__is_constructible_test' [with _Tp = std::__1::__tuple_leaf<1, boost::multiprecision::number, 0> &&, false>, _Args = <>] __is_constructible_test(_Tp&&, _Args&& ...); ^ /usr/include/c++/v1/type_traits:2419:14: note: in instantiation of template class 'std::__1::__libcpp_is_constructible, 0> &&, false>>' requested here : public __libcpp_is_constructible::value || is_reference<_Tp>::value, ^ /usr/include/c++/v1/type_traits:2445:14: note: in instantiation of template class 'std::__1::__is_constructible_void_check, 0> &&, false>>' requested here : public __is_constructible_void_check<__contains_void<_Tp, _Args...>::value ^ /usr/include/c++/v1/type_traits:2653:14: note: in instantiation of template class 'std::__1::is_constructible, 0> &&, false>>' requested here : public is_constructible<_Tp> ^ /usr/local/include/boost/multiprecision/number.hpp:645:119: note: (skipping 1 context in backtrace; use -ftemplate-backtrace-limit=0 to see all) template ::value || !std::is_default_constructible::value, T>::type> ^ /usr/local/include/boost/multiprecision/number.hpp:647:13: note: in instantiation of default argument for 'operator type-parameter-0-0, 0> &&, false> >' required here explicit operator T ()const ^~~~~~~~~~~~~~~~~~ /usr/local/include/boost/multiprecision/number.hpp:647:13: note: while substituting deduced template arguments into function template 'operator type-parameter-0-0' [with T = std::__1::__tuple_leaf<1, boost::multiprecision::number, 0> &&, false>, $1 = ] explicit operator T ()const ^ /usr/include/c++/v1/tuple:573:15: note: in instantiation of function template specialization 'std::__1::__tuple_impl, boost::multiprecision::number, 0> &&, boost::multiprecision::number, 0> &&, dev::FixedHash<32> &&, dev::FixedHash<32> &&, dev::eth::Account::Changedness &&>::__tuple_impl<0, 1, 2, 3, 4, boost::multiprecision::number, 0> &&, boost::multiprecision::number, 0> &&, dev::FixedHash<32> &&, dev::FixedHash<32> &&, dev::eth::Account::Changedness &&, boost::multiprecision::number, 0>, boost::multiprecision::number, 0>, dev::FixedHash<32>, dev::FixedHash<32>, dev::eth::Account::Changedness>' requested here : base_(typename __make_tuple_indices::type(), ^ /usr/include/c++/v1/tuple:882:12: note: in instantiation of function template specialization 'std::__1::tuple, 0> &&, boost::multiprecision::number, 0> &&, dev::FixedHash<32> &&, dev::FixedHash<32> &&, dev::eth::Account::Changedness &&>::tuple, 0>, boost::multiprecision::number, 0>, dev::FixedHash<32>, dev::FixedHash<32>, dev::eth::Account::Changedness, false>' requested here return tuple<_Tp&&...>(_VSTD::forward<_Tp>(__t)...); ^ cpp-ethereum/libethereum/State.cpp:186:8: note: in instantiation of function template specialization 'std::__1::forward_as_tuple, 0>, boost::multiprecision::number, 0>, dev::FixedHash<32>, dev::FixedHash<32>, dev::eth::Account::Changedness>' requested here std::forward_as_tuple(state[0].toInt(), state[1].toInt(), state[2].toHash(), state[3].toHash(), Account::Unchanged) ^ In file included from cpp-ethereum/libethereum/State.cpp:22: In file included from cpp-ethereum/libethereum/State.h:24: In file included from /usr/include/c++/v1/array:108: In file included from /usr/include/c++/v1/algorithm:628: In file included from /usr/include/c++/v1/memory:607: /usr/include/c++/v1/tuple:188:9: error: static_assert failed "Attempted to default construct a reference element in a tuple" {static_assert(!is_reference<_Hp>::value, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~ PR: 229569 Reported by: antoine (via exp-run) END