Compile [2024-11-15 18:22:18 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/include" -I"../libs/hana/test/_include" -c -o "/var/boost/run/results/boost/bin.v2/libs/hana/test/test~pair~product.test/gcc-12~c++17/debug/x86_64/debug-symbols-off/threading-multi/visibility-hidden/pair/product.o" "../libs/hana/test/pair/product.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/eval_if.hpp:15,
from ../boost/hana/concept/logical.hpp:19,
from ../boost/hana/if.hpp:15,
from ../boost/hana/assert.hpp:16,
from ../libs/hana/test/pair/product.cpp:5:
../boost/hana/fwd/equal.hpp: In instantiation of 'struct boost::hana::equal_impl<boost::hana::test::Integer<(boost::hana::test::Policy)17, void>, boost::hana::test::Integer<(boost::hana::test::Policy)17, void>, void>':
../boost/hana/equal.hpp:50:28: required from 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::test::ct_eq<1>&; Y = boost::hana::test::ct_eq<1>]'
../libs/hana/test/pair/product.cpp:22:9: required from here
../boost/hana/fwd/equal.hpp:69:12: error: ambiguous template instantiation for 'struct boost::hana::equal_impl<boost::hana::test::Integer<(boost::hana::test::Policy)17, void>, boost::hana::test::Integer<(boost::hana::test::Policy)17, void>, boost::hana::when<true> >'
69 | struct equal_impl : equal_impl<T, U, when<true>> { };
| ^~~~~~~~~~
In file included from ../libs/hana/test/pair/product.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::test::Integer<(boost::hana::test::Policy)17, void>; U = boost::hana::test::Integer<(boost::hana::test::Policy)17, void>; 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::test::Integer<(boost::hana::test::Policy)17, void>]'
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::test::Integer<(boost::hana::test::Policy)17, void>, boost::hana::test::Integer<(boost::hana::test::Policy)17, void>, 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::test::Integer<(boost::hana::test::Policy)17, void>, boost::hana::test::Integer<(boost::hana::test::Policy)17, void>, boost::hana::when<true> >'
../boost/hana/equal.hpp: In instantiation of 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::test::ct_eq<1>&; Y = boost::hana::test::ct_eq<1>]':
../libs/hana/test/pair/product.cpp:22:9: required from here
../boost/hana/equal.hpp:50:28: error: 'apply' is not a member of 'Equal' {aka 'boost::hana::equal_impl<boost::hana::test::Integer<(boost::hana::test::Policy)17, void>, boost::hana::test::Integer<(boost::hana::test::Policy)17, void>, void>'}
50 | return Equal::apply(static_cast<X&&>(x), static_cast<Y&&>(y));
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/pair/product.cpp: In function 'int main()':
../boost/hana/assert.hpp:227:9: error: template argument 1 is invalid
227 | >::value, \
| ^
../boost/hana/assert.hpp:240:9: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK_MSG'
240 | BOOST_HANA_CONSTANT_CHECK_MSG( \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/pair/product.cpp:22:9: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
22 | BOOST_HANA_CONSTANT_CHECK(hana::equal(hana::first(p), ct_eq<1>{}));
| ^~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/assert.hpp:232:10: error: no matching function for call to 'value<<expression error> >()'
230 | static_assert(::boost::hana::value< \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
231 | decltype(BOOST_HANA_PP_CONCAT(__hana_tmp_, __LINE__)) \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
232 | >(), message); \
| ~^~
../boost/hana/assert.hpp:240:9: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK_MSG'
240 | BOOST_HANA_CONSTANT_CHECK_MSG( \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/pair/product.cpp:22:9: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
22 | BOOST_HANA_CONSTANT_CHECK(hana::equal(hana::first(p), ct_eq<1>{}));
| ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../boost/hana/concept/constant.hpp:19,
from ../boost/hana/assert.hpp:13:
../boost/hana/value.hpp:31:30: note: candidate: 'template<class T> constexpr decltype(auto) boost::hana::value()'
31 | constexpr decltype(auto) value() {
| ^~~~~
../boost/hana/value.hpp:31:30: note: template argument deduction/substitution failed:
../boost/hana/assert.hpp:232:10: error: template argument 1 is invalid
230 | static_assert(::boost::hana::value< \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
231 | decltype(BOOST_HANA_PP_CONCAT(__hana_tmp_, __LINE__)) \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
232 | >(), message); \
| ~^~
../boost/hana/assert.hpp:240:9: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK_MSG'
240 | BOOST_HANA_CONSTANT_CHECK_MSG( \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/pair/product.cpp:22:9: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
22 | BOOST_HANA_CONSTANT_CHECK(hana::equal(hana::first(p), ct_eq<1>{}));
| ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../boost/hana/value.hpp:13:
../boost/hana/fwd/value.hpp:65:30: note: candidate: 'template<class T> constexpr decltype(auto) boost::hana::value(const T&)'
65 | constexpr decltype(auto) value(T const&)
| ^~~~~
../boost/hana/fwd/value.hpp:65:30: note: candidate expects 1 argument, 0 provided
../boost/hana/equal.hpp: In instantiation of 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::test::ct_eq<2>&; Y = boost::hana::test::ct_eq<2>]':
../libs/hana/test/pair/product.cpp:23:9: required from here
../boost/hana/equal.hpp:50:28: error: 'apply' is not a member of 'Equal' {aka 'boost::hana::equal_impl<boost::hana::test::Integer<(boost::hana::test::Policy)17, void>, boost::hana::test::Integer<(boost::hana::test::Policy)17, void>, void>'}
50 | return Equal::apply(static_cast<X&&>(x), static_cast<Y&&>(y));
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/assert.hpp:227:9: error: template argument 1 is invalid
227 | >::value, \
| ^
../boost/hana/assert.hpp:240:9: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK_MSG'
240 | BOOST_HANA_CONSTANT_CHECK_MSG( \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/pair/product.cpp:23:9: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
23 | BOOST_HANA_CONSTANT_CHECK(hana::equal(hana::second(p), ct_eq<2>{}));
| ^~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/assert.hpp:232:10: error: no matching function for call to 'value<<expression error> >()'
230 | static_assert(::boost::hana::value< \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
231 | decltype(BOOST_HANA_PP_CONCAT(__hana_tmp_, __LINE__)) \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
232 | >(), message); \
| ~^~
../boost/hana/assert.hpp:240:9: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK_MSG'
240 | BOOST_HANA_CONSTANT_CHECK_MSG( \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/pair/product.cpp:23:9: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
23 | BOOST_HANA_CONSTANT_CHECK(hana::equal(hana::second(p), ct_eq<2>{}));
| ^~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/value.hpp:31:30: note: candidate: 'template<class T> constexpr decltype(auto) boost::hana::value()'
31 | constexpr decltype(auto) value() {
| ^~~~~
../boost/hana/value.hpp:31:30: note: template argument deduction/substitution failed:
../boost/hana/assert.hpp:232:10: error: template argument 1 is invalid
230 | static_assert(::boost::hana::value< \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
231 | decltype(BOOST_HANA_PP_CONCAT(__hana_tmp_, __LINE__)) \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
232 | >(), message); \
| ~^~
../boost/hana/assert.hpp:240:9: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK_MSG'
240 | BOOST_HANA_CONSTANT_CHECK_MSG( \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/pair/product.cpp:23:9: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
23 | BOOST_HANA_CONSTANT_CHECK(hana::equal(hana::second(p), ct_eq<2>{}));
| ^~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/fwd/value.hpp:65:30: note: candidate: 'template<class T> constexpr decltype(auto) boost::hana::value(const T&)'
65 | constexpr decltype(auto) value(T const&)
| ^~~~~
../boost/hana/fwd/value.hpp:65:30: note: candidate expects 1 argument, 0 provided
../boost/hana/equal.hpp: In instantiation of 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::test::ct_eq<3>; Y = boost::hana::test::ct_eq<3>&]':
../libs/hana/test/_include/laws/product.hpp:32:17: required from 'boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)> [with auto:2 = boost::hana::test::ct_eq<3>; auto:3 = boost::hana::test::ct_eq<3>]'
../boost/hana/functional/partial.hpp:78:43: required from 'constexpr decltype(auto) boost::hana::partial_t<std::integer_sequence<long unsigned int, _Idx ...>, F, X ...>::operator()(Y&& ...) const & [with Y = {const boost::hana::test::ct_eq<3>&}; long unsigned int ...n = {0}; F = boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)>; X = {boost::hana::test::ct_eq<3>}]'
../boost/hana/for_each.hpp:46:45: required from 'constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {const boost::hana::test::ct_eq<3>&, const boost::hana::test::ct_eq<4>&, const boost::hana::test::ct_eq<5>&}; F = const boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)>, boost::hana::test::ct_eq<3> >*]'
../boost/hana/basic_tuple.hpp:115:39: required from 'static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::basic_tuple_tag>::apply(const boost::hana::detail::basic_tuple_impl<std::integer_sequence<long unsigned int, _Idx ...>, Xn ...>&, F&&) [with long unsigned int ...i = {0, 1, 2}; Xn = {boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5>}; F = boost::hana::detail::on_each<const boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)>, boost::hana::test::ct_eq<3> >*>]'
../boost/hana/unpack.hpp:47:29: required from 'constexpr decltype(auto) boost::hana::unpack_t::operator()(Xs&&, F&&) const [with Xs = const boost::hana::basic_tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >&; F = boost::hana::detail::on_each<const boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)>, boost::hana::test::ct_eq<3> >*>]'
../boost/hana/tuple.hpp:233:32: [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
../boost/hana/unpack.hpp:47:29: required from 'constexpr decltype(auto) boost::hana::unpack_t::operator()(Xs&&, F&&) const [with Xs = const boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >&; F = boost::hana::detail::on_each<boost::hana::_compose<boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::test::for_each_n_t<1>, boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >, boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::make_partial_t, boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)> > >*>]'
../boost/hana/for_each.hpp:56:25: required from 'static constexpr void boost::hana::for_each_impl<T, boost::hana::when<condition> >::apply(Xs&&, F&&) [with Xs = const boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >&; F = boost::hana::_compose<boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::test::for_each_n_t<1>, boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >, boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::make_partial_t, boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)> > >; T = boost::hana::tuple_tag; bool condition = true]'
../boost/hana/for_each.hpp:35:30: required from 'constexpr void boost::hana::for_each_t::operator()(Xs&&, F&&) const [with Xs = const boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >&; F = boost::hana::_compose<boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::test::for_each_n_t<1>, boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >, boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::make_partial_t, boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)> > >]'
../libs/hana/test/_include/laws/base.hpp:44:31: required from 'constexpr auto boost::hana::test::for_each_n_t<i>::operator()(const Xs&, const F&) const [with Xs = boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >; F = boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)>; int i = 2]'
../libs/hana/test/_include/laws/product.hpp:29:21: required from 'boost::hana::test::TestProduct<P, boost::hana::test::laws>::TestProduct(Elements) [with Elements = boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >; P = boost::hana::pair_tag]'
../libs/hana/test/_include/laws/product.hpp:22:37: required from here
../boost/hana/equal.hpp:50:28: error: 'apply' is not a member of 'Equal' {aka 'boost::hana::equal_impl<boost::hana::test::Integer<(boost::hana::test::Policy)17, void>, boost::hana::test::Integer<(boost::hana::test::Policy)17, void>, void>'}
50 | return Equal::apply(static_cast<X&&>(x), static_cast<Y&&>(y));
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/equal.hpp: In instantiation of 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::test::ct_eq<4>; Y = boost::hana::test::ct_eq<4>&]':
../libs/hana/test/_include/laws/product.hpp:37:17: required from 'boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)> [with auto:2 = boost::hana::test::ct_eq<3>; auto:3 = boost::hana::test::ct_eq<4>]'
../boost/hana/functional/partial.hpp:78:43: required from 'constexpr decltype(auto) boost::hana::partial_t<std::integer_sequence<long unsigned int, _Idx ...>, F, X ...>::operator()(Y&& ...) const & [with Y = {const boost::hana::test::ct_eq<4>&}; long unsigned int ...n = {0}; F = boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)>; X = {boost::hana::test::ct_eq<3>}]'
../boost/hana/for_each.hpp:46:45: required from 'constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {const boost::hana::test::ct_eq<3>&, const boost::hana::test::ct_eq<4>&, const boost::hana::test::ct_eq<5>&}; F = const boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)>, boost::hana::test::ct_eq<3> >*]'
../boost/hana/basic_tuple.hpp:115:39: required from 'static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::basic_tuple_tag>::apply(const boost::hana::detail::basic_tuple_impl<std::integer_sequence<long unsigned int, _Idx ...>, Xn ...>&, F&&) [with long unsigned int ...i = {0, 1, 2}; Xn = {boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5>}; F = boost::hana::detail::on_each<const boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)>, boost::hana::test::ct_eq<3> >*>]'
../boost/hana/unpack.hpp:47:29: required from 'constexpr decltype(auto) boost::hana::unpack_t::operator()(Xs&&, F&&) const [with Xs = const boost::hana::basic_tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >&; F = boost::hana::detail::on_each<const boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)>, boost::hana::test::ct_eq<3> >*>]'
../boost/hana/tuple.hpp:233:32: [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
../boost/hana/unpack.hpp:47:29: required from 'constexpr decltype(auto) boost::hana::unpack_t::operator()(Xs&&, F&&) const [with Xs = const boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >&; F = boost::hana::detail::on_each<boost::hana::_compose<boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::test::for_each_n_t<1>, boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >, boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::make_partial_t, boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)> > >*>]'
../boost/hana/for_each.hpp:56:25: required from 'static constexpr void boost::hana::for_each_impl<T, boost::hana::when<condition> >::apply(Xs&&, F&&) [with Xs = const boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >&; F = boost::hana::_compose<boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::test::for_each_n_t<1>, boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >, boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::make_partial_t, boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)> > >; T = boost::hana::tuple_tag; bool condition = true]'
../boost/hana/for_each.hpp:35:30: required from 'constexpr void boost::hana::for_each_t::operator()(Xs&&, F&&) const [with Xs = const boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >&; F = boost::hana::_compose<boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::test::for_each_n_t<1>, boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >, boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::make_partial_t, boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)> > >]'
../libs/hana/test/_include/laws/base.hpp:44:31: required from 'constexpr auto boost::hana::test::for_each_n_t<i>::operator()(const Xs&, const F&) const [with Xs = boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >; F = boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)>; int i = 2]'
../libs/hana/test/_include/laws/product.hpp:29:21: required from 'boost::hana::test::TestProduct<P, boost::hana::test::laws>::TestProduct(Elements) [with Elements = boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >; P = boost::hana::pair_tag]'
../libs/hana/test/_include/laws/product.hpp:22:37: required from here
../boost/hana/equal.hpp:50:28: error: 'apply' is not a member of 'Equal' {aka 'boost::hana::equal_impl<boost::hana::test::Integer<(boost::hana::test::Policy)17, void>, boost::hana::test::Integer<(boost::hana::test::Policy)17, void>, void>'}
../boost/hana/equal.hpp: In instantiation of 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::test::ct_eq<5>; Y = boost::hana::test::ct_eq<5>&]':
../libs/hana/test/_include/laws/product.hpp:37:17: required from 'boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)> [with auto:2 = boost::hana::test::ct_eq<3>; auto:3 = boost::hana::test::ct_eq<5>]'
../boost/hana/functional/partial.hpp:78:43: required from 'constexpr decltype(auto) boost::hana::partial_t<std::integer_sequence<long unsigned int, _Idx ...>, F, X ...>::operator()(Y&& ...) const & [with Y = {const boost::hana::test::ct_eq<5>&}; long unsigned int ...n = {0}; F = boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)>; X = {boost::hana::test::ct_eq<3>}]'
../boost/hana/for_each.hpp:46:45: required from 'constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {const boost::hana::test::ct_eq<3>&, const boost::hana::test::ct_eq<4>&, const boost::hana::test::ct_eq<5>&}; F = const boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)>, boost::hana::test::ct_eq<3> >*]'
../boost/hana/basic_tuple.hpp:115:39: required from 'static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::basic_tuple_tag>::apply(const boost::hana::detail::basic_tuple_impl<std::integer_sequence<long unsigned int, _Idx ...>, Xn ...>&, F&&) [with long unsigned int ...i = {0, 1, 2}; Xn = {boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5>}; F = boost::hana::detail::on_each<const boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)>, boost::hana::test::ct_eq<3> >*>]'
../boost/hana/unpack.hpp:47:29: required from 'constexpr decltype(auto) boost::hana::unpack_t::operator()(Xs&&, F&&) const [with Xs = const boost::hana::basic_tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >&; F = boost::hana::detail::on_each<const boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)>, boost::hana::test::ct_eq<3> >*>]'
../boost/hana/tuple.hpp:233:32: [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
../boost/hana/unpack.hpp:47:29: required from 'constexpr decltype(auto) boost::hana::unpack_t::operator()(Xs&&, F&&) const [with Xs = const boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >&; F = boost::hana::detail::on_each<boost::hana::_compose<boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::test::for_each_n_t<1>, boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >, boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::make_partial_t, boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)> > >*>]'
../boost/hana/for_each.hpp:56:25: required from 'static constexpr void boost::hana::for_each_impl<T, boost::hana::when<condition> >::apply(Xs&&, F&&) [with Xs = const boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >&; F = boost::hana::_compose<boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::test::for_each_n_t<1>, boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >, boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::make_partial_t, boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)> > >; T = boost::hana::tuple_tag; bool condition = true]'
../boost/hana/for_each.hpp:35:30: required from 'constexpr void boost::hana::for_each_t::operator()(Xs&&, F&&) const [with Xs = const boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >&; F = boost::hana::_compose<boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::test::for_each_n_t<1>, boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >, boost::hana::partial_t<std::integer_sequence<long unsigned int, 0>, boost::hana::make_partial_t, boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)> > >]'
../libs/hana/test/_include/laws/base.hpp:44:31: required from 'constexpr auto boost::hana::test::for_each_n_t<i>::operator()(const Xs&, const F&) const [with Xs = boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >; F = boost::hana::test::TestProduct<boost::hana::pair_tag, boost::hana::test::laws>::TestProduct<boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> > >(boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >)::<lambda(auto:2, auto:3)>; int i = 2]'
../libs/hana/test/_include/laws/product.hpp:29:21: required from 'boost::hana::test::TestProduct<P, boost::hana::test::laws>::TestProduct(Elements) [with Elements = boost::hana::tuple<boost::hana::test::ct_eq<3>, boost::hana::test::ct_eq<4>, boost::hana::test::ct_eq<5> >; P = boost::hana::pair_tag]'
../libs/hana/test/_include/laws/product.hpp:22:37: required from here
../boost/hana/equal.hpp:50:28: error: 'apply' is not a member of 'Equal' {aka 'boost::hana::equal_impl<boost::hana::test::Integer<(boost::hana::test::Policy)17, void>, boost::hana::test::Integer<(boost::hana::test::Policy)17, void>, void>'}