Test output: teeks99-dkr-dg12 - hana - test~integral_constant~operators / gcc-12~c++17
Rev 8a1a5f3a64b5f11de2ff03a1d6fb9372a5c51e66 / Fri, 15 Nov 2024 15:30:25 +0000
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~integral_constant~operators.test/gcc-12~c++17/debug/x86_64/debug-symbols-off/threading-multi/visibility-hidden/integral_constant/operators.o" "../libs/hana/test/integral_constant/operators.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/integral_constant/operators.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 = boost::hana::integral_constant<int, 1>; Y = const boost::hana::integral_constant<int, 1>&]'
../boost/hana/detail/operators/comparable.hpp:37:29:   required from 'constexpr auto boost::hana::detail::operators::operator==(X&&, Y&&) [with X = boost::hana::integral_constant<int, 1>; Y = const boost::hana::integral_constant<int, 1>&; <template-parameter-1-3> = void]'
../libs/hana/test/integral_constant/operators.cpp:27:1:   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 ../libs/hana/test/integral_constant/operators.cpp:10:
../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 = boost::hana::integral_constant<int, 1>; Y = const boost::hana::integral_constant<int, 1>&]':
../boost/hana/detail/operators/comparable.hpp:37:29:   required from 'constexpr auto boost::hana::detail::operators::operator==(X&&, Y&&) [with X = boost::hana::integral_constant<int, 1>; Y = const boost::hana::integral_constant<int, 1>&; <template-parameter-1-3> = void]'
../libs/hana/test/integral_constant/operators.cpp:27:1:   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));
      |                ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../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/integral_constant/operators.cpp:27:1: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
   27 | BOOST_HANA_CONSTANT_CHECK(+hana::int_c<1> == hana::int_c<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/integral_constant/operators.cpp:27:1: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
   27 | BOOST_HANA_CONSTANT_CHECK(+hana::int_c<1> == hana::int_c<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/integral_constant/operators.cpp:27:1: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
   27 | BOOST_HANA_CONSTANT_CHECK(+hana::int_c<1> == hana::int_c<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
In file included from ../boost/hana/detail/operators/arithmetic.hpp:19,
                 from ../boost/hana/bool.hpp:19:
../boost/hana/fwd/negate.hpp: In instantiation of 'struct boost::hana::negate_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::negate_impl<int, void>]'
../boost/hana/concept/group.hpp:27:65:   required from 'struct boost::hana::Group<int>'
../boost/hana/minus.hpp:106:40:   required by substitution of 'template<class C> struct boost::hana::minus_impl<C, C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Group<typename C::value_type>::value)> > [with C = boost::hana::integral_constant_tag<int>]'
../boost/hana/fwd/minus.hpp:56:12:   required from 'struct boost::hana::minus_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<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::minus_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<int>, void>]'
../boost/hana/concept/group.hpp:29:64:   required from 'struct boost::hana::Group<boost::hana::integral_constant_tag<int> >'
../boost/hana/negate.hpp:29:15:   required from 'constexpr decltype(auto) boost::hana::negate_t::operator()(X&&) const [with X = const boost::hana::integral_constant<int, 1>&]'
../boost/hana/detail/operators/arithmetic.hpp:51:30:   required from 'constexpr auto boost::hana::detail::operators::operator-(X&&) [with X = const boost::hana::integral_constant<int, 1>&; <template-parameter-1-2> = void]'
../libs/hana/test/integral_constant/operators.cpp:28:1:   required from here
../boost/hana/fwd/negate.hpp:31:12: error: ambiguous template instantiation for 'struct boost::hana::negate_impl<int, boost::hana::when<true> >'
   31 |     struct negate_impl : negate_impl<G, when<true>> { };
      |            ^~~~~~~~~~~
In file included from ../boost/hana/concept/group.hpp:20,
                 from ../boost/hana/minus.hpp:16,
                 from ../libs/hana/test/integral_constant/operators.cpp:15:
../boost/hana/negate.hpp:43:12: note: candidates are: 'template<class T, bool condition> struct boost::hana::negate_impl<T, boost::hana::when<condition> > [with T = int; bool condition = true]'
   43 |     struct negate_impl<T, when<condition>> : default_ {
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/negate.hpp:53:12: note:                 'template<class T> struct boost::hana::negate_impl<T, boost::hana::when<(std::is_arithmetic<_Tp>::value && (! std::is_same<bool, T>::value))> > [with T = int]'
   53 |     struct negate_impl<T, when<std::is_arithmetic<T>::value &&
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   54 |                                !std::is_same<bool, T>::value>> {
      |                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/fwd/negate.hpp:31:12: error: invalid use of incomplete type 'struct boost::hana::negate_impl<int, boost::hana::when<true> >'
   31 |     struct negate_impl : negate_impl<G, when<true>> { };
      |            ^~~~~~~~~~~
../boost/hana/fwd/negate.hpp:31:12: note: declaration of 'struct boost::hana::negate_impl<int, boost::hana::when<true> >'
In file included from ../boost/hana/detail/operators/arithmetic.hpp:16:
../boost/hana/fwd/minus.hpp: In instantiation of 'struct boost::hana::minus_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::minus_impl<int, int, void>]'
../boost/hana/concept/group.hpp:29:64:   required from 'struct boost::hana::Group<int>'
../boost/hana/minus.hpp:106:40:   required by substitution of 'template<class C> struct boost::hana::minus_impl<C, C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Group<typename C::value_type>::value)> > [with C = boost::hana::integral_constant_tag<int>]'
../boost/hana/fwd/minus.hpp:56:12:   required from 'struct boost::hana::minus_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<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::minus_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<int>, void>]'
../boost/hana/concept/group.hpp:29:64:   required from 'struct boost::hana::Group<boost::hana::integral_constant_tag<int> >'
../boost/hana/negate.hpp:29:15:   required from 'constexpr decltype(auto) boost::hana::negate_t::operator()(X&&) const [with X = const boost::hana::integral_constant<int, 1>&]'
../boost/hana/detail/operators/arithmetic.hpp:51:30:   required from 'constexpr auto boost::hana::detail::operators::operator-(X&&) [with X = const boost::hana::integral_constant<int, 1>&; <template-parameter-1-2> = void]'
../libs/hana/test/integral_constant/operators.cpp:28:1:   required from here
../boost/hana/fwd/minus.hpp:56:12: error: ambiguous template instantiation for 'struct boost::hana::minus_impl<int, int, boost::hana::when<true> >'
   56 |     struct minus_impl : minus_impl<T, U, when<true>> { };
      |            ^~~~~~~~~~
../boost/hana/minus.hpp:54:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::minus_impl<T, U, boost::hana::when<condition> > [with T = int; U = int; bool condition = true]'
   54 |     struct minus_impl<T, U, when<condition>> : default_ {
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/minus.hpp:60:12: note:                 'template<class T, bool condition> struct boost::hana::minus_impl<T, T, boost::hana::when<condition> > [with T = int; bool condition = true]'
   60 |     struct minus_impl<T, T, when<condition>> : default_ {
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/minus.hpp:85:12: note:                 'template<class T> struct boost::hana::minus_impl<T, T, boost::hana::when<(std::is_arithmetic<_Tp>::value && (! std::is_same<bool, T>::value))> > [with T = int]'
   85 |     struct minus_impl<T, T, when<std::is_arithmetic<T>::value &&
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   86 |                                  !std::is_same<bool, T>::value>> {
      |                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/fwd/minus.hpp:56:12: error: invalid use of incomplete type 'struct boost::hana::minus_impl<int, int, boost::hana::when<true> >'
   56 |     struct minus_impl : minus_impl<T, U, when<true>> { };
      |            ^~~~~~~~~~
../boost/hana/fwd/minus.hpp:56:12: note: declaration of 'struct boost::hana::minus_impl<int, int, boost::hana::when<true> >'
../boost/hana/fwd/minus.hpp: In instantiation of 'struct boost::hana::minus_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<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::minus_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<int>, void>]'
../boost/hana/concept/group.hpp:29:64:   required from 'struct boost::hana::Group<boost::hana::integral_constant_tag<int> >'
../boost/hana/negate.hpp:29:15:   required from 'constexpr decltype(auto) boost::hana::negate_t::operator()(X&&) const [with X = const boost::hana::integral_constant<int, 1>&]'
../boost/hana/detail/operators/arithmetic.hpp:51:30:   required from 'constexpr auto boost::hana::detail::operators::operator-(X&&) [with X = const boost::hana::integral_constant<int, 1>&; <template-parameter-1-2> = void]'
../libs/hana/test/integral_constant/operators.cpp:28:1:   required from here
../boost/hana/fwd/minus.hpp:56:12: error: ambiguous template instantiation for 'struct boost::hana::minus_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<int>, boost::hana::when<true> >'
../boost/hana/minus.hpp:54:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::minus_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]'
   54 |     struct minus_impl<T, U, when<condition>> : default_ {
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/minus.hpp:60:12: note:                 'template<class T, bool condition> struct boost::hana::minus_impl<T, T, boost::hana::when<condition> > [with T = boost::hana::integral_constant_tag<int>; bool condition = true]'
   60 |     struct minus_impl<T, T, when<condition>> : default_ {
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/minus.hpp:104:12: note:                 'template<class C> struct boost::hana::minus_impl<C, C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Group<typename C::value_type>::value)> > [with C = boost::hana::integral_constant_tag<int>]'
  104 |     struct minus_impl<C, C, when<
      |            ^~~~~~~~~~~~~~~~~~~~~~
  105 |         hana::Constant<C>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  106 |         Group<typename C::value_type>::value
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  107 |     >> {
      |     ~~      
../boost/hana/fwd/minus.hpp:56:12: error: invalid use of incomplete type 'struct boost::hana::minus_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<int>, boost::hana::when<true> >'
   56 |     struct minus_impl : minus_impl<T, U, when<true>> { };
      |            ^~~~~~~~~~
../boost/hana/fwd/minus.hpp:56:12: note: declaration of 'struct boost::hana::minus_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<int>, boost::hana::when<true> >'
In file included from ../boost/hana/zero.hpp:13,
                 from ../boost/hana/negate.hpp:19:
../boost/hana/fwd/zero.hpp: In instantiation of 'struct boost::hana::zero_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::zero_impl<int, void>]'
../boost/hana/concept/monoid.hpp:27:63:   required from 'struct boost::hana::Monoid<int>'
../boost/hana/plus.hpp:101:41:   required by substitution of 'template<class C> struct boost::hana::zero_impl<C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Monoid<typename C::value_type>::value)> > [with C = boost::hana::integral_constant_tag<int>]'
../boost/hana/fwd/zero.hpp:35:12:   required from 'struct boost::hana::zero_impl<boost::hana::integral_constant_tag<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::zero_impl<boost::hana::integral_constant_tag<int>, void>]'
../boost/hana/concept/monoid.hpp:27:63:   required from 'struct boost::hana::Monoid<boost::hana::integral_constant_tag<int> >'
../boost/hana/zero.hpp:30:40:   required from 'constexpr decltype(auto) boost::hana::zero_t<M>::operator()() const [with M = boost::hana::integral_constant_tag<int>]'
../boost/hana/negate.hpp:46:43:   required from 'static constexpr decltype(auto) boost::hana::negate_impl<T, boost::hana::when<condition> >::apply(X&&) [with X = const boost::hana::integral_constant<int, 1>&; T = boost::hana::integral_constant_tag<int>; bool condition = true]'
../boost/hana/negate.hpp:38:29:   required from 'constexpr decltype(auto) boost::hana::negate_t::operator()(X&&) const [with X = const boost::hana::integral_constant<int, 1>&]'
../boost/hana/detail/operators/arithmetic.hpp:51:30:   required from 'constexpr auto boost::hana::detail::operators::operator-(X&&) [with X = const boost::hana::integral_constant<int, 1>&; <template-parameter-1-2> = void]'
../libs/hana/test/integral_constant/operators.cpp:28:1:   required from here
../boost/hana/fwd/zero.hpp:35:12: error: ambiguous template instantiation for 'struct boost::hana::zero_impl<int, boost::hana::when<true> >'
   35 |     struct zero_impl : zero_impl<M, when<true>> { };
      |            ^~~~~~~~~
../boost/hana/zero.hpp:43:12: note: candidates are: 'template<class M, bool condition> struct boost::hana::zero_impl<M, boost::hana::when<condition> > [with M = int; bool condition = true]'
   43 |     struct zero_impl<M, when<condition>> : default_ {
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/zero.hpp:52:12: note:                 'template<class T> struct boost::hana::zero_impl<T, boost::hana::when<(std::is_arithmetic<_Tp>::value && (! std::is_same<T, bool>::value))> > [with T = int]'
   52 |     struct zero_impl<T, when<
      |            ^~~~~~~~~~~~~~~~~~
   53 |         std::is_arithmetic<T>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   54 |         !std::is_same<T, bool>::value
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   55 |     >> {
      |     ~~      
../boost/hana/fwd/zero.hpp:35:12: error: invalid use of incomplete type 'struct boost::hana::zero_impl<int, boost::hana::when<true> >'
   35 |     struct zero_impl : zero_impl<M, when<true>> { };
      |            ^~~~~~~~~
../boost/hana/fwd/zero.hpp:35:12: note: declaration of 'struct boost::hana::zero_impl<int, boost::hana::when<true> >'
In file included from ../boost/hana/detail/operators/arithmetic.hpp:20:
../boost/hana/fwd/plus.hpp: In instantiation of 'struct boost::hana::plus_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::plus_impl<int, int, void>]'
../boost/hana/concept/monoid.hpp:29:63:   required from 'struct boost::hana::Monoid<int>'
../boost/hana/plus.hpp:101:41:   required by substitution of 'template<class C> struct boost::hana::zero_impl<C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Monoid<typename C::value_type>::value)> > [with C = boost::hana::integral_constant_tag<int>]'
../boost/hana/fwd/zero.hpp:35:12:   required from 'struct boost::hana::zero_impl<boost::hana::integral_constant_tag<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::zero_impl<boost::hana::integral_constant_tag<int>, void>]'
../boost/hana/concept/monoid.hpp:27:63:   required from 'struct boost::hana::Monoid<boost::hana::integral_constant_tag<int> >'
../boost/hana/zero.hpp:30:40:   required from 'constexpr decltype(auto) boost::hana::zero_t<M>::operator()() const [with M = boost::hana::integral_constant_tag<int>]'
../boost/hana/negate.hpp:46:43:   required from 'static constexpr decltype(auto) boost::hana::negate_impl<T, boost::hana::when<condition> >::apply(X&&) [with X = const boost::hana::integral_constant<int, 1>&; T = boost::hana::integral_constant_tag<int>; bool condition = true]'
../boost/hana/negate.hpp:38:29:   required from 'constexpr decltype(auto) boost::hana::negate_t::operator()(X&&) const [with X = const boost::hana::integral_constant<int, 1>&]'
../boost/hana/detail/operators/arithmetic.hpp:51:30:   required from 'constexpr auto boost::hana::detail::operators::operator-(X&&) [with X = const boost::hana::integral_constant<int, 1>&; <template-parameter-1-2> = void]'
../libs/hana/test/integral_constant/operators.cpp:28:1:   required from here
../boost/hana/fwd/plus.hpp:52:12: error: ambiguous template instantiation for 'struct boost::hana::plus_impl<int, int, boost::hana::when<true> >'
   52 |     struct plus_impl : plus_impl<T, U, when<true>> { };
      |            ^~~~~~~~~
In file included from ../boost/hana/concept/monoid.hpp:19,
                 from ../boost/hana/zero.hpp:16:
../boost/hana/plus.hpp:56:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::plus_impl<T, U, boost::hana::when<condition> > [with T = int; U = int; bool condition = true]'
   56 |     struct plus_impl<T, U, when<condition>> : default_ {
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/plus.hpp:78:12: note:                 'template<class T> struct boost::hana::plus_impl<T, T, boost::hana::when<(std::is_arithmetic<_Tp>::value && (! std::is_same<T, bool>::value))> > [with T = int]'
   78 |     struct plus_impl<T, T, when<
      |            ^~~~~~~~~~~~~~~~~~~~~
   79 |         std::is_arithmetic<T>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   80 |         !std::is_same<T, bool>::value
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   81 |     >> {
      |     ~~      
../boost/hana/fwd/plus.hpp:52:12: error: invalid use of incomplete type 'struct boost::hana::plus_impl<int, int, boost::hana::when<true> >'
   52 |     struct plus_impl : plus_impl<T, U, when<true>> { };
      |            ^~~~~~~~~
../boost/hana/fwd/plus.hpp:52:12: note: declaration of 'struct boost::hana::plus_impl<int, int, boost::hana::when<true> >'
../boost/hana/fwd/zero.hpp: In instantiation of 'struct boost::hana::zero_impl<boost::hana::integral_constant_tag<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::zero_impl<boost::hana::integral_constant_tag<int>, void>]'
../boost/hana/concept/monoid.hpp:27:63:   required from 'struct boost::hana::Monoid<boost::hana::integral_constant_tag<int> >'
../boost/hana/zero.hpp:30:40:   required from 'constexpr decltype(auto) boost::hana::zero_t<M>::operator()() const [with M = boost::hana::integral_constant_tag<int>]'
../boost/hana/negate.hpp:46:43:   required from 'static constexpr decltype(auto) boost::hana::negate_impl<T, boost::hana::when<condition> >::apply(X&&) [with X = const boost::hana::integral_constant<int, 1>&; T = boost::hana::integral_constant_tag<int>; bool condition = true]'
../boost/hana/negate.hpp:38:29:   required from 'constexpr decltype(auto) boost::hana::negate_t::operator()(X&&) const [with X = const boost::hana::integral_constant<int, 1>&]'
../boost/hana/detail/operators/arithmetic.hpp:51:30:   required from 'constexpr auto boost::hana::detail::operators::operator-(X&&) [with X = const boost::hana::integral_constant<int, 1>&; <template-parameter-1-2> = void]'
../libs/hana/test/integral_constant/operators.cpp:28:1:   required from here
../boost/hana/fwd/zero.hpp:35:12: error: ambiguous template instantiation for 'struct boost::hana::zero_impl<boost::hana::integral_constant_tag<int>, boost::hana::when<true> >'
   35 |     struct zero_impl : zero_impl<M, when<true>> { };
      |            ^~~~~~~~~
../boost/hana/zero.hpp:43:12: note: candidates are: 'template<class M, bool condition> struct boost::hana::zero_impl<M, boost::hana::when<condition> > [with M = boost::hana::integral_constant_tag<int>; bool condition = true]'
   43 |     struct zero_impl<M, when<condition>> : default_ {
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/zero.hpp:72:12: note:                 'template<class C> struct boost::hana::zero_impl<C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Monoid<typename C::value_type>::value)> > [with C = boost::hana::integral_constant_tag<int>]'
   72 |     struct zero_impl<C, when<
      |            ^~~~~~~~~~~~~~~~~~
   73 |         hana::Constant<C>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   74 |         Monoid<typename C::value_type>::value
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   75 |     >> {
      |     ~~      
../boost/hana/fwd/zero.hpp:35:12: error: invalid use of incomplete type 'struct boost::hana::zero_impl<boost::hana::integral_constant_tag<int>, boost::hana::when<true> >'
   35 |     struct zero_impl : zero_impl<M, when<true>> { };
      |            ^~~~~~~~~
../boost/hana/fwd/zero.hpp:35:12: note: declaration of 'struct boost::hana::zero_impl<boost::hana::integral_constant_tag<int>, boost::hana::when<true> >'
../boost/hana/fwd/plus.hpp: In instantiation of 'struct boost::hana::plus_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<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::plus_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<int>, void>]'
../boost/hana/concept/monoid.hpp:29:63:   required from 'struct boost::hana::Monoid<boost::hana::integral_constant_tag<int> >'
../boost/hana/zero.hpp:30:40:   required from 'constexpr decltype(auto) boost::hana::zero_t<M>::operator()() const [with M = boost::hana::integral_constant_tag<int>]'
../boost/hana/negate.hpp:46:43:   required from 'static constexpr decltype(auto) boost::hana::negate_impl<T, boost::hana::when<condition> >::apply(X&&) [with X = const boost::hana::integral_constant<int, 1>&; T = boost::hana::integral_constant_tag<int>; bool condition = true]'
../boost/hana/negate.hpp:38:29:   required from 'constexpr decltype(auto) boost::hana::negate_t::operator()(X&&) const [with X = const boost::hana::integral_constant<int, 1>&]'
../boost/hana/detail/operators/arithmetic.hpp:51:30:   required from 'constexpr auto boost::hana::detail::operators::operator-(X&&) [with X = const boost::hana::integral_constant<int, 1>&; <template-parameter-1-2> = void]'
../libs/hana/test/integral_constant/operators.cpp:28:1:   required from here
../boost/hana/fwd/plus.hpp:52:12: error: ambiguous template instantiation for 'struct boost::hana::plus_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<int>, boost::hana::when<true> >'
   52 |     struct plus_impl : plus_impl<T, U, when<true>> { };
      |            ^~~~~~~~~
../boost/hana/plus.hpp:56:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::plus_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]'
   56 |     struct plus_impl<T, U, when<condition>> : default_ {
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/plus.hpp:99:12: note:                 'template<class C> struct boost::hana::plus_impl<C, C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Monoid<typename C::value_type>::value)> > [with C = boost::hana::integral_constant_tag<int>]'
   99 |     struct plus_impl<C, C, when<
      |            ^~~~~~~~~~~~~~~~~~~~~
  100 |         hana::Constant<C>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  101 |         Monoid<typename C::value_type>::value
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  102 |     >> {
      |     ~~      
../boost/hana/fwd/plus.hpp:52:12: error: invalid use of incomplete type 'struct boost::hana::plus_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<int>, boost::hana::when<true> >'
   52 |     struct plus_impl : plus_impl<T, U, when<true>> { };
      |            ^~~~~~~~~
../boost/hana/fwd/plus.hpp:52:12: note: declaration of 'struct boost::hana::plus_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<int>, boost::hana::when<true> >'
../boost/hana/zero.hpp: In instantiation of 'constexpr decltype(auto) boost::hana::zero_t<M>::operator()() const [with M = boost::hana::integral_constant_tag<int>]':
../boost/hana/negate.hpp:46:43:   required from 'static constexpr decltype(auto) boost::hana::negate_impl<T, boost::hana::when<condition> >::apply(X&&) [with X = const boost::hana::integral_constant<int, 1>&; T = boost::hana::integral_constant_tag<int>; bool condition = true]'
../boost/hana/negate.hpp:38:29:   required from 'constexpr decltype(auto) boost::hana::negate_t::operator()(X&&) const [with X = const boost::hana::integral_constant<int, 1>&]'
../boost/hana/detail/operators/arithmetic.hpp:51:30:   required from 'constexpr auto boost::hana::detail::operators::operator-(X&&) [with X = const boost::hana::integral_constant<int, 1>&; <template-parameter-1-2> = void]'
../libs/hana/test/integral_constant/operators.cpp:28:1:   required from here
../boost/hana/zero.hpp:38:27: error: 'apply' is not a member of 'Zero' {aka 'boost::hana::zero_impl<boost::hana::integral_constant_tag<int>, void>'}
   38 |         return Zero::apply();
      |                ~~~~~~~~~~~^~
../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/integral_constant/operators.cpp:28:1: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
   28 | BOOST_HANA_CONSTANT_CHECK(-hana::int_c<1> == hana::int_c<-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/integral_constant/operators.cpp:28:1: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
   28 | BOOST_HANA_CONSTANT_CHECK(-hana::int_c<1> == hana::int_c<-1>);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~
../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/integral_constant/operators.cpp:28:1: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
   28 | BOOST_HANA_CONSTANT_CHECK(-hana::int_c<1> == hana::int_c<-1>);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~
../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/plus.hpp: In instantiation of 'constexpr decltype(auto) boost::hana::plus_t::operator()(X&&, Y&&) const [with X = const boost::hana::integral_constant<int, 1>&; Y = const boost::hana::integral_constant<int, 2>&]':
../boost/hana/detail/operators/arithmetic.hpp:37:28:   required from 'constexpr auto boost::hana::detail::operators::operator+(X&&, Y&&) [with X = const boost::hana::integral_constant<int, 1>&; Y = const boost::hana::integral_constant<int, 2>&; <template-parameter-1-3> = void]'
../libs/hana/test/integral_constant/operators.cpp:29:1:   required from here
../boost/hana/plus.hpp:51:27: error: 'apply' is not a member of 'Plus' {aka 'boost::hana::plus_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<int>, void>'}
   51 |         return Plus::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/integral_constant/operators.cpp:29:1: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
   29 | BOOST_HANA_CONSTANT_CHECK(hana::int_c<1> + hana::int_c<2> == hana::int_c<3>);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~
../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/integral_constant/operators.cpp:29:1: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
   29 | BOOST_HANA_CONSTANT_CHECK(hana::int_c<1> + hana::int_c<2> == hana::int_c<3>);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~
../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/integral_constant/operators.cpp:29:1: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
   29 | BOOST_HANA_CONSTANT_CHECK(hana::int_c<1> + hana::int_c<2> == hana::int_c<3>);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~
../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/minus.hpp: In instantiation of 'constexpr decltype(auto) boost::hana::minus_t::operator()(X&&, Y&&) const [with X = const boost::hana::integral_constant<int, 1>&; Y = const boost::hana::integral_constant<int, 2>&]':
../boost/hana/detail/operators/arithmetic.hpp:45:29:   required from 'constexpr auto boost::hana::detail::operators::operator-(X&&, Y&&) [with X = const boost::hana::integral_constant<int, 1>&; Y = const boost::hana::integral_constant<int, 2>&; <template-parameter-1-3> = void]'
../libs/hana/test/integral_constant/operators.cpp:30:1:   required from here
../boost/hana/minus.hpp:49:28: error: 'apply' is not a member of 'Minus' {aka 'boost::hana::minus_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<int>, void>'}
   49 |         return Minus::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/integral_constant/operators.cpp:30:1: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
   30 | BOOST_HANA_CONSTANT_CHECK(hana::int_c<1> - hana::int_c<2> == hana::int_c<-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/integral_constant/operators.cpp:30:1: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
   30 | BOOST_HANA_CONSTANT_CHECK(hana::int_c<1> - hana::int_c<2> == hana::int_c<-1>);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~
../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/integral_constant/operators.cpp:30:1: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
   30 | BOOST_HANA_CONSTANT_CHECK(hana::int_c<1> - hana::int_c<2> == hana::int_c<-1>);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~
../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
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/integral_constant/operators.cpp:17:
../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/one.hpp:72:39:   required by substitution of 'template<class C> struct boost::hana::one_impl<C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Ring<typename C::value_type>::value)> > [with C = boost::hana::integral_constant_tag<int>]'
../boost/hana/fwd/one.hpp:35:12:   required from 'struct boost::hana::one_impl<boost::hana::integral_constant_tag<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<boost::hana::integral_constant_tag<int>, void>]'
../boost/hana/concept/ring.hpp:27:62:   required from 'struct boost::hana::Ring<boost::hana::integral_constant_tag<int> >'
../boost/hana/mult.hpp:33:22:   required from 'constexpr decltype(auto) boost::hana::mult_t::operator()(X&&, Y&&) const [with X = const boost::hana::integral_constant<int, 3>&; Y = const boost::hana::integral_constant<int, 2>&]'
../boost/hana/detail/operators/arithmetic.hpp:59:28:   required from 'constexpr auto boost::hana::detail::operators::operator*(X&&, Y&&) [with X = const boost::hana::integral_constant<int, 3>&; Y = const boost::hana::integral_constant<int, 2>&; <template-parameter-1-3> = void]'
../libs/hana/test/integral_constant/operators.cpp:31:1:   required from here
../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:
../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/one.hpp:72:39:   required by substitution of 'template<class C> struct boost::hana::one_impl<C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Ring<typename C::value_type>::value)> > [with C = boost::hana::integral_constant_tag<int>]'
../boost/hana/fwd/one.hpp:35:12:   required from 'struct boost::hana::one_impl<boost::hana::integral_constant_tag<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<boost::hana::integral_constant_tag<int>, void>]'
../boost/hana/concept/ring.hpp:27:62:   required from 'struct boost::hana::Ring<boost::hana::integral_constant_tag<int> >'
../boost/hana/mult.hpp:33:22:   required from 'constexpr decltype(auto) boost::hana::mult_t::operator()(X&&, Y&&) const [with X = const boost::hana::integral_constant<int, 3>&; Y = const boost::hana::integral_constant<int, 2>&]'
../boost/hana/detail/operators/arithmetic.hpp:59:28:   required from 'constexpr auto boost::hana::detail::operators::operator*(X&&, Y&&) [with X = const boost::hana::integral_constant<int, 3>&; Y = const boost::hana::integral_constant<int, 2>&; <template-parameter-1-3> = void]'
../libs/hana/test/integral_constant/operators.cpp:31:1:   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/fwd/one.hpp: In instantiation of 'struct boost::hana::one_impl<boost::hana::integral_constant_tag<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<boost::hana::integral_constant_tag<int>, void>]'
../boost/hana/concept/ring.hpp:27:62:   required from 'struct boost::hana::Ring<boost::hana::integral_constant_tag<int> >'
../boost/hana/mult.hpp:33:22:   required from 'constexpr decltype(auto) boost::hana::mult_t::operator()(X&&, Y&&) const [with X = const boost::hana::integral_constant<int, 3>&; Y = const boost::hana::integral_constant<int, 2>&]'
../boost/hana/detail/operators/arithmetic.hpp:59:28:   required from 'constexpr auto boost::hana::detail::operators::operator*(X&&, Y&&) [with X = const boost::hana::integral_constant<int, 3>&; Y = const boost::hana::integral_constant<int, 2>&; <template-parameter-1-3> = void]'
../libs/hana/test/integral_constant/operators.cpp:31:1:   required from here
../boost/hana/fwd/one.hpp:35:12: error: ambiguous template instantiation for 'struct boost::hana::one_impl<boost::hana::integral_constant_tag<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 = boost::hana::integral_constant_tag<int>; bool condition = true]'
   43 |     struct one_impl<R, when<condition>> : default_ {
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/one.hpp:70:12: note:                 'template<class C> struct boost::hana::one_impl<C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Ring<typename C::value_type>::value)> > [with C = boost::hana::integral_constant_tag<int>]'
   70 |     struct one_impl<C, when<
      |            ^~~~~~~~~~~~~~~~~
   71 |         hana::Constant<C>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   72 |         Ring<typename C::value_type>::value
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   73 |     >> {
      |     ~~      
../boost/hana/fwd/one.hpp:35:12: error: invalid use of incomplete type 'struct boost::hana::one_impl<boost::hana::integral_constant_tag<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<boost::hana::integral_constant_tag<int>, boost::hana::when<true> >'
../boost/hana/fwd/mult.hpp: In instantiation of 'struct boost::hana::mult_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<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<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<int>, void>]'
../boost/hana/concept/ring.hpp:29:63:   required from 'struct boost::hana::Ring<boost::hana::integral_constant_tag<int> >'
../boost/hana/mult.hpp:33:22:   required from 'constexpr decltype(auto) boost::hana::mult_t::operator()(X&&, Y&&) const [with X = const boost::hana::integral_constant<int, 3>&; Y = const boost::hana::integral_constant<int, 2>&]'
../boost/hana/detail/operators/arithmetic.hpp:59:28:   required from 'constexpr auto boost::hana::detail::operators::operator*(X&&, Y&&) [with X = const boost::hana::integral_constant<int, 3>&; Y = const boost::hana::integral_constant<int, 2>&; <template-parameter-1-3> = void]'
../libs/hana/test/integral_constant/operators.cpp:31:1:   required from here
../boost/hana/fwd/mult.hpp:52:12: error: ambiguous template instantiation for 'struct boost::hana::mult_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<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 = boost::hana::integral_constant_tag<int>; U = boost::hana::integral_constant_tag<int>; bool condition = true]'
   56 |     struct mult_impl<T, U, when<condition>> : default_ {
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/mult.hpp:97:12: note:                 'template<class C> struct boost::hana::mult_impl<C, C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Ring<typename C::value_type>::value)> > [with C = boost::hana::integral_constant_tag<int>]'
   97 |     struct mult_impl<C, C, when<
      |            ^~~~~~~~~~~~~~~~~~~~~
   98 |         hana::Constant<C>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   99 |         Ring<typename C::value_type>::value
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  100 |     >> {
      |     ~~      
../boost/hana/fwd/mult.hpp:52:12: error: invalid use of incomplete type 'struct boost::hana::mult_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<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<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<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 = const boost::hana::integral_constant<int, 3>&; Y = const boost::hana::integral_constant<int, 2>&]':
../boost/hana/detail/operators/arithmetic.hpp:59:28:   required from 'constexpr auto boost::hana::detail::operators::operator*(X&&, Y&&) [with X = const boost::hana::integral_constant<int, 3>&; Y = const boost::hana::integral_constant<int, 2>&; <template-parameter-1-3> = void]'
../libs/hana/test/integral_constant/operators.cpp:31:1:   required from here
../boost/hana/mult.hpp:51:27: error: 'apply' is not a member of 'Mult' {aka 'boost::hana::mult_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<int>, void>'}
   51 |         return Mult::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/integral_constant/operators.cpp:31:1: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
   31 | BOOST_HANA_CONSTANT_CHECK(hana::int_c<3> * hana::int_c<2> == hana::int_c<6>);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~
../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/integral_constant/operators.cpp:31:1: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
   31 | BOOST_HANA_CONSTANT_CHECK(hana::int_c<3> * hana::int_c<2> == hana::int_c<6>);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~
../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/integral_constant/operators.cpp:31:1: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
   31 | BOOST_HANA_CONSTANT_CHECK(hana::int_c<3> * hana::int_c<2> == hana::int_c<6>);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~
../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
In file included from ../boost/hana/detail/operators/arithmetic.hpp:17:
../boost/hana/fwd/mod.hpp: In instantiation of 'struct boost::hana::mod_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::mod_impl<int, int, void>]'
../boost/hana/concept/euclidean_ring.hpp:28:62:   required from 'struct boost::hana::EuclideanRing<int>'
../boost/hana/mod.hpp:99:48:   required by substitution of 'template<class C> struct boost::hana::mod_impl<C, C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::EuclideanRing<typename C::value_type>::value)> > [with C = boost::hana::integral_constant_tag<int>]'
../boost/hana/fwd/mod.hpp:51:12:   required from 'struct boost::hana::mod_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<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::mod_impl<boost::hana::integral_constant_tag<int>, boost::hana::integral_constant_tag<int>, void>]'
../boost/hana/concept/euclidean_ring.hpp:28:62:   required from 'struct boost::hana::EuclideanRing<boost::hana::integral_constant_tag<int> >'
../boost/hana/div.hpp:33:21:   required from 'constexpr decltype(auto) boost::hana::div_t::operator()(X&&, Y&&) const [with X = const boost::hana::integral_constant<int, 6>&; Y = const boost::hana::integral_constant<int, 3>&]'
../boost/hana/detail/operators/arithmetic.hpp:67:27:   required from 'constexpr auto boost::hana::detail::operators::operator/(X&&, Y&&) [with X = const boost::hana::integral_constant<int, 6>&; Y = const boost::hana::integral_constant<int, 3>&; <template-parameter-1-3> = void]'
../libs/hana/test/integral_constant/operators.cpp:32:1:   required from here
../boost/hana/fwd/mod.hpp:51:12: error: ambiguous template instantiation for 'struct boost::hana::mod_impl<int, int, boost::hana::when<true> >'
   51 |     struct mod_impl : mod_impl<T, U, when<true>> { };
      |            ^~~~~~~~
In file included from ../boost/hana/concept/euclidean_ring.hpp:20,
                 from ../boost/hana/div.hpp:16,
                 from ../libs/hana/test/integral_constant/operators.cpp:9:
../boost/hana/mod.hpp:56:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::mod_impl<T, U, boost::hana::when<condition> > [with T = int; U = int; bool condition = true]'
   56 |     struct mod_impl<T, U, when<condition>> : default_ {
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/mod.hpp:78:12: note:                 'template<class T> struct boost::hana::mod_impl<T, T, boost::hana::when<(std::is_integral<_Tp>::value && (! std::is_same<T, bool>::value))> > [with T = int]'
   78 |     struct mod_impl<T, T, when<std::is_integral<T>::value &&
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   79 |                                !std::is_same<T, bool>::value>> {
      |                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/fwd/mod.hpp:51:12: error: invalid use of incomplete type 'struct boost::hana::mod_impl<int, int, boost::hana::when<true> >'
   51 |     struct mod_impl : mod_impl<T, U, when<true>> { };
      |            ^~~~~~~~
../boost/hana/fwd/mod.hpp:51:12: note: declaration of 'struct boost::hana::mod_impl<int, int, boost::hana::when<true> >'
In file included from ../boost/hana/detail/operators/arithmetic.hpp:15:
../boost/hana/fwd/div.hpp: In instantiation of 'struct boost::hana::div_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::div_impl<int, int, void>]'
../boost/hana/concept/euclidean_ring...

[The content has been trimmed by the report system because it exceeds 65536 bytes]