Compile [2024-11-16 12:16:26 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~ext~std~bugs~libcxx_19616.test/gcc-12~c++17/debug/x86_64/debug-symbols-off/threading-multi/visibility-hidden/ext/std/bugs/libcxx_19616.o" "../libs/hana/test/ext/std/bugs/libcxx_19616.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/ext/std/bugs/libcxx_19616.cpp:5:
../boost/hana/fwd/equal.hpp: In instantiation of 'struct boost::hana::equal_impl<boost::hana::ext::std::tuple_tag, boost::hana::ext::std::tuple_tag, void>':
../boost/hana/equal.hpp:50:28: required from 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = std::tuple<std::tuple<int> >; Y = std::tuple<std::tuple<int> >]'
../libs/hana/test/ext/std/bugs/libcxx_19616.cpp:17:5: required from here
../boost/hana/fwd/equal.hpp:69:12: error: ambiguous template instantiation for 'struct boost::hana::equal_impl<boost::hana::ext::std::tuple_tag, boost::hana::ext::std::tuple_tag, boost::hana::when<true> >'
69 | struct equal_impl : equal_impl<T, U, when<true>> { };
| ^~~~~~~~~~
In file included from ../libs/hana/test/ext/std/bugs/libcxx_19616.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::ext::std::tuple_tag; U = boost::hana::ext::std::tuple_tag; bool condition = true]'
55 | struct equal_impl<T, U, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/equal.hpp:168:12: note: 'template<class T, class U> struct boost::hana::equal_impl<T, U, boost::hana::when<(boost::hana::Sequence<S>::value && boost::hana::Sequence<Tag>::value)> > [with T = boost::hana::ext::std::tuple_tag; U = boost::hana::ext::std::tuple_tag]'
168 | struct equal_impl<T, U, when<Sequence<T>::value && hana::Sequence<U>::value>> {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/fwd/equal.hpp:69:12: error: invalid use of incomplete type 'struct boost::hana::equal_impl<boost::hana::ext::std::tuple_tag, boost::hana::ext::std::tuple_tag, 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::ext::std::tuple_tag, boost::hana::ext::std::tuple_tag, boost::hana::when<true> >'
../boost/hana/equal.hpp: In instantiation of 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = std::tuple<std::tuple<int> >; Y = std::tuple<std::tuple<int> >]':
../libs/hana/test/ext/std/bugs/libcxx_19616.cpp:17:5: required from here
../boost/hana/equal.hpp:50:28: error: 'apply' is not a member of 'Equal' {aka 'boost::hana::equal_impl<boost::hana::ext::std::tuple_tag, boost::hana::ext::std::tuple_tag, void>'}
50 | return Equal::apply(static_cast<X&&>(x), static_cast<Y&&>(y));
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/ext/std/bugs/libcxx_19616.cpp: In function 'int main()':
../boost/hana/assert.hpp:192:68: error: template argument 1 is invalid
192 | static_assert(!::boost::hana::Constant<decltype(__hana_tmp)>::value,\
| ^
../boost/hana/assert.hpp:315:9: note: in expansion of macro 'BOOST_HANA_RUNTIME_CHECK_MSG'
315 | BOOST_HANA_RUNTIME_CHECK_MSG(condition, message) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/assert.hpp:319:9: note: in expansion of macro 'BOOST_HANA_CONSTEXPR_CHECK_MSG'
319 | BOOST_HANA_CONSTEXPR_CHECK_MSG( \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/ext/std/bugs/libcxx_19616.cpp:17:5: note: in expansion of macro 'BOOST_HANA_CONSTEXPR_CHECK'
17 | BOOST_HANA_CONSTEXPR_CHECK(hana::equal(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~