Compile [2024-11-16 12:16:25 UTC]: fail
"g++-12" -fvisibility-inlines-hidden -std=c++17 -fPIC -m64 -pthread -O0 -fno-inline -Wall -fvisibility=hidden -DBOOST_ALL_NO_LIB=1 -DBOOST_COBALT_USE_STD_PMR=1 -I".." -I"../libs/hana/test/_include" -I"/var/boost/run/boost_root/libs/assert/include" -I"/var/boost/run/boost_root/libs/core/include" -I"/var/boost/run/boost_root/libs/hana/include" -I"/var/boost/run/boost_root/libs/throw_exception/include" -I"/var/boost/run/boost_root/libs/tuple/include" -c -o "/var/boost/run/results/boost/bin.v2/libs/hana/test/test~tuple~issue_90.test/gcc-12~c++17/debug/x86_64/debug-symbols-off/threading-multi/visibility-hidden/tuple/issue_90.o" "../libs/hana/test/tuple/issue_90.cpp"
In file included from ../boost/hana/detail/operators/comparable.hpp:15,
from ../boost/hana/pair.hpp:20,
from ../boost/hana/unpack.hpp:26,
from ../boost/hana/fold_left.hpp:20,
from ../boost/hana/concept/foldable.hpp:19,
from ../boost/hana/core/to.hpp:16,
from ../boost/hana/bool.hpp:17,
from ../boost/hana/integral_constant.hpp:13,
from ../boost/hana/drop_front.hpp:20,
from ../boost/hana/concept/iterable.hpp:20,
from ../boost/hana/at.hpp:16,
from ../libs/hana/test/tuple/issue_90.cpp:5:
../boost/hana/fwd/equal.hpp: In instantiation of 'struct boost::hana::equal_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<int>, void>':
../boost/hana/equal.hpp:50:28: required from 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = const RefOnly_i<3>&; Y = const RefOnly_i<3>&]'
../boost/hana/at_key.hpp:69:35: required from 'constexpr auto boost::hana::at_key_detail::equal_to<T>::operator()(const U&) const [with U = RefOnly_i<3>; T = RefOnly_i<3>]'
../boost/hana/detail/index_if.hpp:32:37: required by substitution of 'template<long unsigned int i, long unsigned int N> template<class Pred, class X1, class ... Xs> using f = typename boost::hana::detail::index_if_helper<(i + 1), N, static_cast<bool>(typename boost::hana::detail::decay<decltype (declval<Pred>()(declval<X1>()))>::type::value)>::f<Pred, Xs ...> [with Pred = boost::hana::at_key_detail::equal_to<RefOnly_i<3> >; X1 = RefOnly_i<3>; Xs = {}; long unsigned int i = 0; long unsigned int N = 1]'
../boost/hana/detail/index_if.hpp:50:15: required from 'struct boost::hana::detail::index_if<boost::hana::at_key_detail::equal_to<RefOnly_i<3> >, RefOnly_i<3> >'
../boost/hana/tuple.hpp:298:31: required by substitution of 'template<class ... Xs, class Pred> static constexpr typename boost::hana::detail::index_if<Pred, Xs ...>::type boost::hana::index_if_impl<boost::hana::tuple_tag>::apply(const boost::hana::tuple<Xn ...>&, const Pred&) [with Xs = {RefOnly_i<3>}; Pred = boost::hana::at_key_detail::equal_to<RefOnly_i<3> >]'
../boost/hana/index_if.hpp:44:30: required from 'constexpr auto boost::hana::index_if_t::operator()(Xs&&, Pred&&) const [with Xs = boost::hana::tuple<RefOnly_i<3> >&; Pred = boost::hana::at_key_detail::equal_to<RefOnly_i<3> >]'
../boost/hana/at_key.hpp:78:51: required from 'static constexpr decltype(auto) boost::hana::at_key_impl<S, boost::hana::when<boost::hana::Sequence<S>::value> >::apply(Xs&&, const Key&) [with Xs = boost::hana::tuple<RefOnly_i<3> >&; Key = RefOnly_i<3>; S = boost::hana::tuple_tag]'
../boost/hana/at_key.hpp:51:28: required from 'constexpr decltype(auto) boost::hana::at_key_t::operator()(Xs&&, const Key&) const [with Xs = boost::hana::tuple<RefOnly_i<3> >&; Key = RefOnly_i<3>]'
../libs/hana/test/tuple/issue_90.cpp:66:40: required from here
../boost/hana/fwd/equal.hpp:69:12: error: ambiguous template instantiation for 'struct boost::hana::equal_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<int>, boost::hana::when<true> >'
69 | struct equal_impl : equal_impl<T, U, when<true>> { };
| ^~~~~~~~~~
In file included from ../boost/hana/at_key.hpp:23,
from ../libs/hana/test/tuple/issue_90.cpp:6:
../boost/hana/equal.hpp:55:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::equal_impl<T, U, boost::hana::when<condition> > [with T = boost::hana::integral_constant_tag<int>; U = boost::hana::integral_constant_tag<int>; bool condition = true]'
55 | struct equal_impl<T, U, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/equal.hpp:104:12: note: 'template<class C> struct boost::hana::equal_impl<C, C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Comparable<typename C::value_type>::value)> > [with C = boost::hana::integral_constant_tag<int>]'
104 | struct equal_impl<C, C, when<
| ^~~~~~~~~~~~~~~~~~~~~~
105 | hana::Constant<C>::value &&
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
106 | Comparable<typename C::value_type>::value
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
107 | >> {
| ~~
../boost/hana/fwd/equal.hpp:69:12: error: invalid use of incomplete type 'struct boost::hana::equal_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<int>, boost::hana::when<true> >'
69 | struct equal_impl : equal_impl<T, U, when<true>> { };
| ^~~~~~~~~~
../boost/hana/fwd/equal.hpp:69:12: note: declaration of 'struct boost::hana::equal_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<int>, boost::hana::when<true> >'
../boost/hana/equal.hpp: In instantiation of 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = const RefOnly_i<3>&; Y = const RefOnly_i<3>&]':
../boost/hana/at_key.hpp:69:35: required from 'constexpr auto boost::hana::at_key_detail::equal_to<T>::operator()(const U&) const [with U = RefOnly_i<3>; T = RefOnly_i<3>]'
../boost/hana/detail/index_if.hpp:32:37: required by substitution of 'template<long unsigned int i, long unsigned int N> template<class Pred, class X1, class ... Xs> using f = typename boost::hana::detail::index_if_helper<(i + 1), N, static_cast<bool>(typename boost::hana::detail::decay<decltype (declval<Pred>()(declval<X1>()))>::type::value)>::f<Pred, Xs ...> [with Pred = boost::hana::at_key_detail::equal_to<RefOnly_i<3> >; X1 = RefOnly_i<3>; Xs = {}; long unsigned int i = 0; long unsigned int N = 1]'
../boost/hana/detail/index_if.hpp:50:15: required from 'struct boost::hana::detail::index_if<boost::hana::at_key_detail::equal_to<RefOnly_i<3> >, RefOnly_i<3> >'
../boost/hana/tuple.hpp:298:31: required by substitution of 'template<class ... Xs, class Pred> static constexpr typename boost::hana::detail::index_if<Pred, Xs ...>::type boost::hana::index_if_impl<boost::hana::tuple_tag>::apply(const boost::hana::tuple<Xn ...>&, const Pred&) [with Xs = {RefOnly_i<3>}; Pred = boost::hana::at_key_detail::equal_to<RefOnly_i<3> >]'
../boost/hana/index_if.hpp:44:30: required from 'constexpr auto boost::hana::index_if_t::operator()(Xs&&, Pred&&) const [with Xs = boost::hana::tuple<RefOnly_i<3> >&; Pred = boost::hana::at_key_detail::equal_to<RefOnly_i<3> >]'
../boost/hana/at_key.hpp:78:51: required from 'static constexpr decltype(auto) boost::hana::at_key_impl<S, boost::hana::when<boost::hana::Sequence<S>::value> >::apply(Xs&&, const Key&) [with Xs = boost::hana::tuple<RefOnly_i<3> >&; Key = RefOnly_i<3>; S = boost::hana::tuple_tag]'
../boost/hana/at_key.hpp:51:28: required from 'constexpr decltype(auto) boost::hana::at_key_t::operator()(Xs&&, const Key&) const [with Xs = boost::hana::tuple<RefOnly_i<3> >&; Key = RefOnly_i<3>]'
../libs/hana/test/tuple/issue_90.cpp:66:40: required from here
../boost/hana/equal.hpp:50:28: error: 'apply' is not a member of 'Equal' {aka 'boost::hana::equal_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<int>, void>'}
50 | return Equal::apply(static_cast<X&&>(x), static_cast<Y&&>(y));
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../boost/hana/find_if.hpp:26,
from ../boost/hana/concept/searchable.hpp:20,
from ../boost/hana/at_key.hpp:18:
../boost/hana/index_if.hpp: In instantiation of 'constexpr auto boost::hana::index_if_t::operator()(Xs&&, Pred&&) const [with Xs = boost::hana::tuple<RefOnly_i<3> >&; Pred = boost::hana::at_key_detail::equal_to<RefOnly_i<3> >]':
../boost/hana/at_key.hpp:78:51: required from 'static constexpr decltype(auto) boost::hana::at_key_impl<S, boost::hana::when<boost::hana::Sequence<S>::value> >::apply(Xs&&, const Key&) [with Xs = boost::hana::tuple<RefOnly_i<3> >&; Key = RefOnly_i<3>; S = boost::hana::tuple_tag]'
../boost/hana/at_key.hpp:51:28: required from 'constexpr decltype(auto) boost::hana::at_key_t::operator()(Xs&&, const Key&) const [with Xs = boost::hana::tuple<RefOnly_i<3> >&; Key = RefOnly_i<3>]'
../libs/hana/test/tuple/issue_90.cpp:66:40: required from here
../boost/hana/index_if.hpp:44:30: error: no matching function for call to 'boost::hana::index_if_impl<boost::hana::tuple_tag>::apply(boost::hana::tuple<RefOnly_i<3> >&, boost::hana::at_key_detail::equal_to<RefOnly_i<3> >)'
44 | return IndexIf::apply(static_cast<Xs&&>(xs), static_cast<Pred&&>(pred));
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../libs/hana/test/tuple/issue_90.cpp:10:
../boost/hana/tuple.hpp:298:31: note: candidate: 'template<class ... Xs, class Pred> static constexpr typename boost::hana::detail::index_if<Pred, Xs ...>::type boost::hana::index_if_impl<boost::hana::tuple_tag>::apply(const boost::hana::tuple<Xn ...>&, const Pred&)'
298 | static constexpr auto apply(tuple<Xs...> const&, Pred const&)
| ^~~~~
../boost/hana/tuple.hpp:298:31: note: substitution of deduced template arguments resulted in errors seen above
../boost/hana/index_if.hpp: In instantiation of 'constexpr auto boost::hana::index_if_t::operator()(Xs&&, Pred&&) const [with Xs = const boost::hana::tuple<RefOnly_i<3> >&; Pred = boost::hana::at_key_detail::equal_to<RefOnly_i<3> >]':
../boost/hana/at_key.hpp:78:51: required from 'static constexpr decltype(auto) boost::hana::at_key_impl<S, boost::hana::when<boost::hana::Sequence<S>::value> >::apply(Xs&&, const Key&) [with Xs = const boost::hana::tuple<RefOnly_i<3> >&; Key = RefOnly_i<3>; S = boost::hana::tuple_tag]'
../boost/hana/at_key.hpp:51:28: required from 'constexpr decltype(auto) boost::hana::at_key_t::operator()(Xs&&, const Key&) const [with Xs = const boost::hana::tuple<RefOnly_i<3> >&; Key = RefOnly_i<3>]'
../libs/hana/test/tuple/issue_90.cpp:67:46: required from here
../boost/hana/index_if.hpp:44:30: error: no matching function for call to 'boost::hana::index_if_impl<boost::hana::tuple_tag>::apply(const boost::hana::tuple<RefOnly_i<3> >&, boost::hana::at_key_detail::equal_to<RefOnly_i<3> >)'
44 | return IndexIf::apply(static_cast<Xs&&>(xs), static_cast<Pred&&>(pred));
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/tuple.hpp:298:31: note: candidate: 'template<class ... Xs, class Pred> static constexpr typename boost::hana::detail::index_if<Pred, Xs ...>::type boost::hana::index_if_impl<boost::hana::tuple_tag>::apply(const boost::hana::tuple<Xn ...>&, const Pred&)'
298 | static constexpr auto apply(tuple<Xs...> const&, Pred const&)
| ^~~~~
../boost/hana/tuple.hpp:298:31: note: template argument deduction/substitution failed:
../boost/hana/index_if.hpp: In instantiation of 'constexpr auto boost::hana::index_if_t::operator()(Xs&&, Pred&&) const [with Xs = boost::hana::tuple<RefOnly_i<3> >; Pred = boost::hana::at_key_detail::equal_to<RefOnly_i<3> >]':
../boost/hana/at_key.hpp:78:51: required from 'static constexpr decltype(auto) boost::hana::at_key_impl<S, boost::hana::when<boost::hana::Sequence<S>::value> >::apply(Xs&&, const Key&) [with Xs = boost::hana::tuple<RefOnly_i<3> >; Key = RefOnly_i<3>; S = boost::hana::tuple_tag]'
../boost/hana/at_key.hpp:51:28: required from 'constexpr decltype(auto) boost::hana::at_key_t::operator()(Xs&&, const Key&) const [with Xs = boost::hana::tuple<RefOnly_i<3> >; Key = RefOnly_i<3>]'
../libs/hana/test/tuple/issue_90.cpp:68:41: required from here
../boost/hana/index_if.hpp:44:30: error: no matching function for call to 'boost::hana::index_if_impl<boost::hana::tuple_tag>::apply(boost::hana::tuple<RefOnly_i<3> >, boost::hana::at_key_detail::equal_to<RefOnly_i<3> >)'
44 | return IndexIf::apply(static_cast<Xs&&>(xs), static_cast<Pred&&>(pred));
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/tuple.hpp:298:31: note: candidate: 'template<class ... Xs, class Pred> static constexpr typename boost::hana::detail::index_if<Pred, Xs ...>::type boost::hana::index_if_impl<boost::hana::tuple_tag>::apply(const boost::hana::tuple<Xn ...>&, const Pred&)'
298 | static constexpr auto apply(tuple<Xs...> const&, Pred const&)
| ^~~~~
../boost/hana/tuple.hpp:298:31: note: template argument deduction/substitution failed: