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~detail~algorithm.test/gcc-12~c++17/debug/x86_64/debug-symbols-off/threading-multi/visibility-hidden/detail/algorithm.o" "../libs/hana/test/detail/algorithm.cpp"
In file included from ../boost/hana/one.hpp:13,
from ../boost/hana/concept/ring.hpp:20,
from ../boost/hana/mult.hpp:16,
from ../libs/hana/test/detail/algorithm.cpp:8:
../boost/hana/fwd/one.hpp: In instantiation of 'struct boost::hana::one_impl<int, void>':
../boost/hana/core/default.hpp:26:9: required by substitution of 'template<class Method> struct boost::hana::is_default<Method, decltype ((void)(static_cast<boost::hana::default_>((*(Method*)(0)))))> [with Method = boost::hana::one_impl<int, void>]'
../boost/hana/concept/ring.hpp:27:62: required from 'struct boost::hana::Ring<int>'
../boost/hana/mult.hpp:33:22: required from 'constexpr decltype(auto) boost::hana::mult_t::operator()(X&&, Y&&) const [with X = int&; Y = int&]'
../boost/hana/detail/algorithm.hpp:163:21: required from 'constexpr T boost::hana::detail::accumulate(InputIt, InputIt, T, F) [with InputIt = int*; T = int; F = boost::hana::mult_t]'
../libs/hana/test/detail/algorithm.cpp:47:29: required from here
../libs/hana/test/detail/algorithm.cpp:54:32: in 'constexpr' expansion of 'constexpr_context()'
../boost/hana/fwd/one.hpp:35:12: error: ambiguous template instantiation for 'struct boost::hana::one_impl<int, boost::hana::when<true> >'
35 | struct one_impl : one_impl<R, when<true>> { };
| ^~~~~~~~
../boost/hana/one.hpp:43:12: note: candidates are: 'template<class R, bool condition> struct boost::hana::one_impl<R, boost::hana::when<condition> > [with R = int; bool condition = true]'
43 | struct one_impl<R, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/one.hpp:52:12: note: 'template<class T> struct boost::hana::one_impl<T, boost::hana::when<(std::is_arithmetic<_Tp>::value && (! std::is_same<bool, T>::value))> > [with T = int]'
52 | struct one_impl<T, when<std::is_arithmetic<T>::value &&
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
53 | !std::is_same<bool, T>::value>> {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/fwd/one.hpp:35:12: error: invalid use of incomplete type 'struct boost::hana::one_impl<int, boost::hana::when<true> >'
35 | struct one_impl : one_impl<R, when<true>> { };
| ^~~~~~~~
../boost/hana/fwd/one.hpp:35:12: note: declaration of 'struct boost::hana::one_impl<int, boost::hana::when<true> >'
In file included from ../boost/hana/detail/operators/arithmetic.hpp:18,
from ../boost/hana/bool.hpp:19,
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 ../boost/hana/any_of.hpp:16,
from ../boost/hana/all_of.hpp:15,
from ../boost/hana/equal.hpp:16,
from ../libs/hana/test/detail/algorithm.cpp:6:
../boost/hana/fwd/mult.hpp: In instantiation of 'struct boost::hana::mult_impl<int, int, void>':
../boost/hana/core/default.hpp:26:9: required by substitution of 'template<class Method> struct boost::hana::is_default<Method, decltype ((void)(static_cast<boost::hana::default_>((*(Method*)(0)))))> [with Method = boost::hana::mult_impl<int, int, void>]'
../boost/hana/concept/ring.hpp:29:63: required from 'struct boost::hana::Ring<int>'
../boost/hana/mult.hpp:33:22: required from 'constexpr decltype(auto) boost::hana::mult_t::operator()(X&&, Y&&) const [with X = int&; Y = int&]'
../boost/hana/detail/algorithm.hpp:163:21: required from 'constexpr T boost::hana::detail::accumulate(InputIt, InputIt, T, F) [with InputIt = int*; T = int; F = boost::hana::mult_t]'
../libs/hana/test/detail/algorithm.cpp:47:29: required from here
../boost/hana/fwd/mult.hpp:52:12: error: ambiguous template instantiation for 'struct boost::hana::mult_impl<int, int, boost::hana::when<true> >'
52 | struct mult_impl : mult_impl<T, U, when<true>> { };
| ^~~~~~~~~
../boost/hana/mult.hpp:56:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::mult_impl<T, U, boost::hana::when<condition> > [with T = int; U = int; bool condition = true]'
56 | struct mult_impl<T, U, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/mult.hpp:78:12: note: 'template<class T> struct boost::hana::mult_impl<T, T, boost::hana::when<(std::is_arithmetic<_Tp>::value && (! std::is_same<bool, T>::value))> > [with T = int]'
78 | struct mult_impl<T, T, when<std::is_arithmetic<T>::value &&
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
79 | !std::is_same<bool, T>::value>> {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/fwd/mult.hpp:52:12: error: invalid use of incomplete type 'struct boost::hana::mult_impl<int, int, boost::hana::when<true> >'
52 | struct mult_impl : mult_impl<T, U, when<true>> { };
| ^~~~~~~~~
../boost/hana/fwd/mult.hpp:52:12: note: declaration of 'struct boost::hana::mult_impl<int, int, boost::hana::when<true> >'
../boost/hana/mult.hpp: In instantiation of 'constexpr decltype(auto) boost::hana::mult_t::operator()(X&&, Y&&) const [with X = int&; Y = int&]':
../boost/hana/detail/algorithm.hpp:163:21: required from 'constexpr T boost::hana::detail::accumulate(InputIt, InputIt, T, F) [with InputIt = int*; T = int; F = boost::hana::mult_t]'
../libs/hana/test/detail/algorithm.cpp:47:29: required from here
../boost/hana/mult.hpp:51:27: error: 'apply' is not a member of 'Mult' {aka 'boost::hana::mult_impl<int, int, void>'}
51 | return Mult::apply(static_cast<X&&>(x), static_cast<Y&&>(y));
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/detail/algorithm.cpp:54:32: error: non-constant condition for static assertion
54 | static_assert(constexpr_context(), "");
| ~~~~~~~~~~~~~~~~~^~