Test output: teeks99-dkr-mg12 - hana - test~issues~github_470 / gcc-12~c++17
Rev 7e09330c84621efd22370bf57289b67c7283ee21 / Sat, 16 Nov 2024 09:26:04 +0000
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~issues~github_470.test/gcc-12~c++17/debug/x86_64/debug-symbols-off/threading-multi/visibility-hidden/issues/github_470.o" "../libs/hana/test/issues/github_470.cpp"

In file included from ../boost/hana/equal.hpp:13,
                 from ../libs/hana/test/issues/github_470.cpp:5:
../boost/hana/fwd/equal.hpp: In instantiation of 'struct boost::hana::equal_impl<boost::hana::tuple_tag, boost::hana::tuple_tag, void>':
../boost/hana/equal.hpp:50:28:   required from 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = const boost::hana::tuple<int>&; Y = const boost::hana::tuple<int>&]'
../boost/hana/detail/operators/comparable.hpp:37:29:   required from 'constexpr auto boost::hana::detail::operators::operator==(X&&, Y&&) [with X = const boost::hana::tuple<int>&; Y = const boost::hana::tuple<int>&; <template-parameter-1-3> = void]'
../libs/hana/test/issues/github_470.cpp:19:20:   required from 'constexpr bool {anonymous}::operator==(const optional<T>&, const T&) [with T = boost::hana::tuple<int>]'
../libs/hana/test/issues/github_470.cpp:38:5:   required from here
../boost/hana/fwd/equal.hpp:69:12: error: ambiguous template instantiation for 'struct boost::hana::equal_impl<boost::hana::tuple_tag, boost::hana::tuple_tag, boost::hana::when<true> >'
   69 |     struct equal_impl : equal_impl<T, U, when<true>> { };
      |            ^~~~~~~~~~
../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::tuple_tag; U = boost::hana::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::tuple_tag; U = boost::hana::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::tuple_tag, boost::hana::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::tuple_tag, boost::hana::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 = const boost::hana::tuple<int>&; Y = const boost::hana::tuple<int>&]':
../boost/hana/detail/operators/comparable.hpp:37:29:   required from 'constexpr auto boost::hana::detail::operators::operator==(X&&, Y&&) [with X = const boost::hana::tuple<int>&; Y = const boost::hana::tuple<int>&; <template-parameter-1-3> = void]'
../libs/hana/test/issues/github_470.cpp:19:20:   required from 'constexpr bool {anonymous}::operator==(const optional<T>&, const T&) [with T = boost::hana::tuple<int>]'
../libs/hana/test/issues/github_470.cpp:38: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::tuple_tag, boost::hana::tuple_tag, void>'}
   50 |         return Equal::apply(static_cast<X&&>(x), static_cast<Y&&>(y));
      |                ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~