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

In file included from ../boost/hana/core/to.hpp:19,
                 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/boost/mpl/integral_c/interop.cpp:7:
../boost/hana/core/common.hpp: In instantiation of 'struct boost::hana::common<boost::hana::ext::boost::mpl::integral_c_tag<int>, int, void>':
../boost/hana/core/common.hpp:103:48:   recursively required by substitution of 'template<class T, class U> struct boost::hana::has_common<T, U, boost::hana::detail::void_t<typename boost::hana::common<T, U, void>::type> > [with T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = int]'
../boost/hana/core/common.hpp:103:48:   required by substitution of 'template<class A, class B> struct boost::hana::common<A, B, boost::hana::when<(((! boost::hana::Constant<C>::value) && boost::hana::Constant<C>::value) && boost::hana::has_common<A, typename B::value_type>::value)> > [with A = boost::hana::ext::boost::mpl::integral_c_tag<int>; B = boost::hana::integral_constant_tag<int>]'
../boost/hana/detail/has_common_embedding.hpp:49:12:   recursively required by substitution of 'template<template<class ...> class Concept, class T, class U> struct boost::hana::detail::has_common_embedding_impl<Concept, T, U, boost::hana::detail::void_t<typename boost::hana::common<T, U, void>::type> > [with Concept = boost::hana::Comparable; T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<int>]'
../boost/hana/detail/has_common_embedding.hpp:49:12:   required from 'struct boost::hana::detail::has_nontrivial_common_embedding_impl<boost::hana::Comparable, boost::hana::ext::boost::mpl::integral_c_tag<int>, boost::hana::integral_constant_tag<int> >'
../boost/hana/equal.hpp:79:68:   required by substitution of 'template<class T, class U> struct boost::hana::equal_impl<T, U, boost::hana::when<(typename boost::hana::detail::has_nontrivial_common_embedding_impl<boost::hana::Comparable, T, U>::type::value && (! boost::hana::detail::EqualityComparable<T, U>::value))> > [with T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<int>]'
../boost/hana/fwd/equal.hpp:69:12:   required from 'struct boost::hana::equal_impl<boost::hana::ext::boost::mpl::integral_c_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 = mpl_::integral_c<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 = mpl_::integral_c<int, 1>; Y = const boost::hana::integral_constant<int, 1>&; <template-parameter-1-3> = void]'
../libs/hana/test/ext/boost/mpl/integral_c/interop.cpp:19:5:   required from here
../boost/hana/core/common.hpp:31:12: error: ambiguous template instantiation for 'struct boost::hana::common<boost::hana::ext::boost::mpl::integral_c_tag<int>, int, boost::hana::when<true> >'
   31 |     struct common : common<T, U, when<true>> { };
      |            ^~~~~~
../boost/hana/core/common.hpp:35:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::common<T, U, boost::hana::when<condition> > [with T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = int; bool condition = true]'
   35 |     struct common<T, U, when<condition>>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/core/common.hpp:91:12: note:                 'template<class A, class B> struct boost::hana::common<A, B, boost::hana::when<((boost::hana::Constant<C>::value && (! boost::hana::Constant<C>::value)) && boost::hana::has_common<typename A::value_type, B>::value)> > [with A = boost::hana::ext::boost::mpl::integral_c_tag<int>; B = int]'
   91 |     struct common<A, B, when<
      |            ^~~~~~~~~~~~~~~~~~
   92 |         hana::Constant<A>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   93 |         !hana::Constant<B>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   94 |         has_common<typename A::value_type, B>::value
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   95 |     >> {
      |     ~~      
../boost/hana/core/common.hpp:31:12: error: invalid use of incomplete type 'struct boost::hana::common<boost::hana::ext::boost::mpl::integral_c_tag<int>, int, boost::hana::when<true> >'
   31 |     struct common : common<T, U, when<true>> { };
      |            ^~~~~~
../boost/hana/core/common.hpp:31:12: note: declaration of 'struct boost::hana::common<boost::hana::ext::boost::mpl::integral_c_tag<int>, int, boost::hana::when<true> >'
../boost/hana/core/common.hpp: In instantiation of 'struct boost::hana::common<int, boost::hana::integral_constant_tag<int>, void>':
../boost/hana/core/common.hpp:94:48:   recursively required by substitution of 'template<class T, class U> struct boost::hana::has_common<T, U, boost::hana::detail::void_t<typename boost::hana::common<T, U, void>::type> > [with T = int; U = boost::hana::integral_constant_tag<int>]'
../boost/hana/core/common.hpp:94:48:   required by substitution of 'template<class A, class B> struct boost::hana::common<A, B, boost::hana::when<((boost::hana::Constant<C>::value && (! boost::hana::Constant<C>::value)) && boost::hana::has_common<typename A::value_type, B>::value)> > [with A = boost::hana::ext::boost::mpl::integral_c_tag<int>; B = boost::hana::integral_constant_tag<int>]'
../boost/hana/detail/has_common_embedding.hpp:49:12:   recursively required by substitution of 'template<template<class ...> class Concept, class T, class U> struct boost::hana::detail::has_common_embedding_impl<Concept, T, U, boost::hana::detail::void_t<typename boost::hana::common<T, U, void>::type> > [with Concept = boost::hana::Comparable; T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<int>]'
../boost/hana/detail/has_common_embedding.hpp:49:12:   required from 'struct boost::hana::detail::has_nontrivial_common_embedding_impl<boost::hana::Comparable, boost::hana::ext::boost::mpl::integral_c_tag<int>, boost::hana::integral_constant_tag<int> >'
../boost/hana/equal.hpp:79:68:   required by substitution of 'template<class T, class U> struct boost::hana::equal_impl<T, U, boost::hana::when<(typename boost::hana::detail::has_nontrivial_common_embedding_impl<boost::hana::Comparable, T, U>::type::value && (! boost::hana::detail::EqualityComparable<T, U>::value))> > [with T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<int>]'
../boost/hana/fwd/equal.hpp:69:12:   required from 'struct boost::hana::equal_impl<boost::hana::ext::boost::mpl::integral_c_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 = mpl_::integral_c<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 = mpl_::integral_c<int, 1>; Y = const boost::hana::integral_constant<int, 1>&; <template-parameter-1-3> = void]'
../libs/hana/test/ext/boost/mpl/integral_c/interop.cpp:19:5:   required from here
../boost/hana/core/common.hpp:31:12: error: ambiguous template instantiation for 'struct boost::hana::common<int, boost::hana::integral_constant_tag<int>, boost::hana::when<true> >'
../boost/hana/core/common.hpp:35:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::common<T, U, boost::hana::when<condition> > [with T = int; U = boost::hana::integral_constant_tag<int>; bool condition = true]'
   35 |     struct common<T, U, when<condition>>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/core/common.hpp:100:12: note:                 'template<class A, class B> struct boost::hana::common<A, B, boost::hana::when<(((! boost::hana::Constant<C>::value) && boost::hana::Constant<C>::value) && boost::hana::has_common<A, typename B::value_type>::value)> > [with A = int; B = boost::hana::integral_constant_tag<int>]'
  100 |     struct common<A, B, when<
      |            ^~~~~~~~~~~~~~~~~~
  101 |         !hana::Constant<A>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  102 |         hana::Constant<B>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  103 |         has_common<A, typename B::value_type>::value
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  104 |     >> {
      |     ~~      
../boost/hana/core/common.hpp:31:12: error: invalid use of incomplete type 'struct boost::hana::common<int, boost::hana::integral_constant_tag<int>, boost::hana::when<true> >'
   31 |     struct common : common<T, U, when<true>> { };
      |            ^~~~~~
../boost/hana/core/common.hpp:31:12: note: declaration of 'struct boost::hana::common<int, boost::hana::integral_constant_tag<int>, boost::hana::when<true> >'
../boost/hana/core/common.hpp: In instantiation of 'struct boost::hana::common<boost::hana::ext::boost::mpl::integral_c_tag<int>, boost::hana::integral_constant_tag<int>, void>':
../boost/hana/detail/has_common_embedding.hpp:49:12:   recursively required by substitution of 'template<template<class ...> class Concept, class T, class U> struct boost::hana::detail::has_common_embedding_impl<Concept, T, U, boost::hana::detail::void_t<typename boost::hana::common<T, U, void>::type> > [with Concept = boost::hana::Comparable; T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<int>]'
../boost/hana/detail/has_common_embedding.hpp:49:12:   required from 'struct boost::hana::detail::has_nontrivial_common_embedding_impl<boost::hana::Comparable, boost::hana::ext::boost::mpl::integral_c_tag<int>, boost::hana::integral_constant_tag<int> >'
../boost/hana/equal.hpp:79:68:   required by substitution of 'template<class T, class U> struct boost::hana::equal_impl<T, U, boost::hana::when<(typename boost::hana::detail::has_nontrivial_common_embedding_impl<boost::hana::Comparable, T, U>::type::value && (! boost::hana::detail::EqualityComparable<T, U>::value))> > [with T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<int>]'
../boost/hana/fwd/equal.hpp:69:12:   required from 'struct boost::hana::equal_impl<boost::hana::ext::boost::mpl::integral_c_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 = mpl_::integral_c<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 = mpl_::integral_c<int, 1>; Y = const boost::hana::integral_constant<int, 1>&; <template-parameter-1-3> = void]'
../libs/hana/test/ext/boost/mpl/integral_c/interop.cpp:19:5:   required from here
../boost/hana/core/common.hpp:31:12: error: ambiguous template instantiation for 'struct boost::hana::common<boost::hana::ext::boost::mpl::integral_c_tag<int>, boost::hana::integral_constant_tag<int>, boost::hana::when<true> >'
../boost/hana/core/common.hpp:35:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::common<T, U, boost::hana::when<condition> > [with T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<int>; bool condition = true]'
   35 |     struct common<T, U, when<condition>>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/core/common.hpp:78:12: note:                 'template<class A, class B> struct boost::hana::common<A, B, boost::hana::when<((boost::hana::Constant<C>::value && boost::hana::Constant<C>::value) && boost::hana::has_common<typename A::value_type, typename B::value_type>::value)> > [with A = boost::hana::ext::boost::mpl::integral_c_tag<int>; B = boost::hana::integral_constant_tag<int>]'
   78 |     struct common<A, B, when<
      |            ^~~~~~~~~~~~~~~~~~
   79 |         hana::Constant<A>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   80 |         hana::Constant<B>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   81 |         has_common<typename A::value_type, typename B::value_type>::value
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   82 |     >> {
      |     ~~      
../boost/hana/core/common.hpp:31:12: error: invalid use of incomplete type 'struct boost::hana::common<boost::hana::ext::boost::mpl::integral_c_tag<int>, boost::hana::integral_constant_tag<int>, boost::hana::when<true> >'
   31 |     struct common : common<T, U, when<true>> { };
      |            ^~~~~~
../boost/hana/core/common.hpp:31:12: note: declaration of 'struct boost::hana::common<boost::hana::ext::boost::mpl::integral_c_tag<int>, boost::hana::integral_constant_tag<int>, boost::hana::when<true> >'
In file included from ../libs/hana/test/ext/boost/mpl/integral_c/interop.cpp:8:
../boost/hana/equal.hpp: In instantiation of 'static constexpr auto boost::hana::equal_impl<T, U, boost::hana::when<condition> >::apply(const X&, const Y&) [with X = mpl_::integral_c<int, 1>; Y = boost::hana::integral_constant<int, 1>; T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<int>; bool condition = true]':
../boost/hana/equal.hpp:50:28:   required from 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = mpl_::integral_c<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 = mpl_::integral_c<int, 1>; Y = const boost::hana::integral_constant<int, 1>&; <template-parameter-1-3> = void]'
../libs/hana/test/ext/boost/mpl/integral_c/interop.cpp:19:5:   required from here
../boost/hana/equal.hpp:60:57: error: static assertion failed: No default implementation of hana::equal is provided for related types that can't be safely embedded into a common type, because those are most likely programming errors. If this is really what you want, you can manually convert both objects to a common Comparable type before performing the comparison. If you think you have made your types Comparable but you see this, perhaps you forgot to define some of the necessary methods for an automatic model of Comparable to kick in. A possible culprit is defining 'operator==' but not 'operator!='.
   60 |             static_assert(!hana::is_convertible<T_, U>::value &&
      |                                                         ^~~~~
../boost/hana/equal.hpp:60:57: note: '!(bool)std::integral_constant<bool, true>::value' evaluates to false
../libs/hana/test/ext/boost/mpl/integral_c/interop.cpp: In function 'int main()':
../boost/hana/assert.hpp:232:10: error: static assertion failed: mpl::integral_c<int, 1>{} == hana::int_c<1>
  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/ext/boost/mpl/integral_c/interop.cpp:19:5: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
   19 |     BOOST_HANA_CONSTANT_CHECK(mpl::integral_c<int, 1>{} == hana::int_c<1>);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/core/common.hpp: In instantiation of 'struct boost::hana::common<boost::hana::ext::boost::mpl::integral_c_tag<int>, long int, void>':
../boost/hana/core/common.hpp:103:48:   recursively required by substitution of 'template<class T, class U> struct boost::hana::has_common<T, U, boost::hana::detail::void_t<typename boost::hana::common<T, U, void>::type> > [with T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = long int]'
../boost/hana/core/common.hpp:103:48:   required by substitution of 'template<class A, class B> struct boost::hana::common<A, B, boost::hana::when<(((! boost::hana::Constant<C>::value) && boost::hana::Constant<C>::value) && boost::hana::has_common<A, typename B::value_type>::value)> > [with A = boost::hana::ext::boost::mpl::integral_c_tag<int>; B = boost::hana::integral_constant_tag<long int>]'
../boost/hana/detail/has_common_embedding.hpp:49:12:   recursively required by substitution of 'template<template<class ...> class Concept, class T, class U> struct boost::hana::detail::has_common_embedding_impl<Concept, T, U, boost::hana::detail::void_t<typename boost::hana::common<T, U, void>::type> > [with Concept = boost::hana::Comparable; T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<long int>]'
../boost/hana/detail/has_common_embedding.hpp:49:12:   required from 'struct boost::hana::detail::has_nontrivial_common_embedding_impl<boost::hana::Comparable, boost::hana::ext::boost::mpl::integral_c_tag<int>, boost::hana::integral_constant_tag<long int> >'
../boost/hana/equal.hpp:79:68:   required by substitution of 'template<class T, class U> struct boost::hana::equal_impl<T, U, boost::hana::when<(typename boost::hana::detail::has_nontrivial_common_embedding_impl<boost::hana::Comparable, T, U>::type::value && (! boost::hana::detail::EqualityComparable<T, U>::value))> > [with T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<long int>]'
../boost/hana/fwd/equal.hpp:69:12:   required from 'struct boost::hana::equal_impl<boost::hana::ext::boost::mpl::integral_c_tag<int>, boost::hana::integral_constant_tag<long int>, void>'
../boost/hana/equal.hpp:50:28:   required from 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = mpl_::integral_c<int, 1>; Y = const boost::hana::integral_constant<long int, 1>&]'
../boost/hana/detail/operators/comparable.hpp:37:29:   required from 'constexpr auto boost::hana::detail::operators::operator==(X&&, Y&&) [with X = mpl_::integral_c<int, 1>; Y = const boost::hana::integral_constant<long int, 1>&; <template-parameter-1-3> = void]'
../libs/hana/test/ext/boost/mpl/integral_c/interop.cpp:20:5:   required from here
../boost/hana/core/common.hpp:31:12: error: ambiguous template instantiation for 'struct boost::hana::common<boost::hana::ext::boost::mpl::integral_c_tag<int>, long int, boost::hana::when<true> >'
   31 |     struct common : common<T, U, when<true>> { };
      |            ^~~~~~
../boost/hana/core/common.hpp:35:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::common<T, U, boost::hana::when<condition> > [with T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = long int; bool condition = true]'
   35 |     struct common<T, U, when<condition>>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/core/common.hpp:91:12: note:                 'template<class A, class B> struct boost::hana::common<A, B, boost::hana::when<((boost::hana::Constant<C>::value && (! boost::hana::Constant<C>::value)) && boost::hana::has_common<typename A::value_type, B>::value)> > [with A = boost::hana::ext::boost::mpl::integral_c_tag<int>; B = long int]'
   91 |     struct common<A, B, when<
      |            ^~~~~~~~~~~~~~~~~~
   92 |         hana::Constant<A>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   93 |         !hana::Constant<B>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   94 |         has_common<typename A::value_type, B>::value
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   95 |     >> {
      |     ~~      
../boost/hana/core/common.hpp:31:12: error: invalid use of incomplete type 'struct boost::hana::common<boost::hana::ext::boost::mpl::integral_c_tag<int>, long int, boost::hana::when<true> >'
   31 |     struct common : common<T, U, when<true>> { };
      |            ^~~~~~
../boost/hana/core/common.hpp:31:12: note: declaration of 'struct boost::hana::common<boost::hana::ext::boost::mpl::integral_c_tag<int>, long int, boost::hana::when<true> >'
../boost/hana/core/common.hpp: In instantiation of 'struct boost::hana::common<int, boost::hana::integral_constant_tag<long int>, void>':
../boost/hana/core/common.hpp:94:48:   recursively required by substitution of 'template<class T, class U> struct boost::hana::has_common<T, U, boost::hana::detail::void_t<typename boost::hana::common<T, U, void>::type> > [with T = int; U = boost::hana::integral_constant_tag<long int>]'
../boost/hana/core/common.hpp:94:48:   required by substitution of 'template<class A, class B> struct boost::hana::common<A, B, boost::hana::when<((boost::hana::Constant<C>::value && (! boost::hana::Constant<C>::value)) && boost::hana::has_common<typename A::value_type, B>::value)> > [with A = boost::hana::ext::boost::mpl::integral_c_tag<int>; B = boost::hana::integral_constant_tag<long int>]'
../boost/hana/detail/has_common_embedding.hpp:49:12:   recursively required by substitution of 'template<template<class ...> class Concept, class T, class U> struct boost::hana::detail::has_common_embedding_impl<Concept, T, U, boost::hana::detail::void_t<typename boost::hana::common<T, U, void>::type> > [with Concept = boost::hana::Comparable; T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<long int>]'
../boost/hana/detail/has_common_embedding.hpp:49:12:   required from 'struct boost::hana::detail::has_nontrivial_common_embedding_impl<boost::hana::Comparable, boost::hana::ext::boost::mpl::integral_c_tag<int>, boost::hana::integral_constant_tag<long int> >'
../boost/hana/equal.hpp:79:68:   required by substitution of 'template<class T, class U> struct boost::hana::equal_impl<T, U, boost::hana::when<(typename boost::hana::detail::has_nontrivial_common_embedding_impl<boost::hana::Comparable, T, U>::type::value && (! boost::hana::detail::EqualityComparable<T, U>::value))> > [with T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<long int>]'
../boost/hana/fwd/equal.hpp:69:12:   required from 'struct boost::hana::equal_impl<boost::hana::ext::boost::mpl::integral_c_tag<int>, boost::hana::integral_constant_tag<long int>, void>'
../boost/hana/equal.hpp:50:28:   required from 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = mpl_::integral_c<int, 1>; Y = const boost::hana::integral_constant<long int, 1>&]'
../boost/hana/detail/operators/comparable.hpp:37:29:   required from 'constexpr auto boost::hana::detail::operators::operator==(X&&, Y&&) [with X = mpl_::integral_c<int, 1>; Y = const boost::hana::integral_constant<long int, 1>&; <template-parameter-1-3> = void]'
../libs/hana/test/ext/boost/mpl/integral_c/interop.cpp:20:5:   required from here
../boost/hana/core/common.hpp:31:12: error: ambiguous template instantiation for 'struct boost::hana::common<int, boost::hana::integral_constant_tag<long int>, boost::hana::when<true> >'
../boost/hana/core/common.hpp:35:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::common<T, U, boost::hana::when<condition> > [with T = int; U = boost::hana::integral_constant_tag<long int>; bool condition = true]'
   35 |     struct common<T, U, when<condition>>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/core/common.hpp:100:12: note:                 'template<class A, class B> struct boost::hana::common<A, B, boost::hana::when<(((! boost::hana::Constant<C>::value) && boost::hana::Constant<C>::value) && boost::hana::has_common<A, typename B::value_type>::value)> > [with A = int; B = boost::hana::integral_constant_tag<long int>]'
  100 |     struct common<A, B, when<
      |            ^~~~~~~~~~~~~~~~~~
  101 |         !hana::Constant<A>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  102 |         hana::Constant<B>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  103 |         has_common<A, typename B::value_type>::value
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  104 |     >> {
      |     ~~      
../boost/hana/core/common.hpp:31:12: error: invalid use of incomplete type 'struct boost::hana::common<int, boost::hana::integral_constant_tag<long int>, boost::hana::when<true> >'
   31 |     struct common : common<T, U, when<true>> { };
      |            ^~~~~~
../boost/hana/core/common.hpp:31:12: note: declaration of 'struct boost::hana::common<int, boost::hana::integral_constant_tag<long int>, boost::hana::when<true> >'
../boost/hana/core/common.hpp: In instantiation of 'struct boost::hana::common<boost::hana::ext::boost::mpl::integral_c_tag<int>, boost::hana::integral_constant_tag<long int>, void>':
../boost/hana/detail/has_common_embedding.hpp:49:12:   recursively required by substitution of 'template<template<class ...> class Concept, class T, class U> struct boost::hana::detail::has_common_embedding_impl<Concept, T, U, boost::hana::detail::void_t<typename boost::hana::common<T, U, void>::type> > [with Concept = boost::hana::Comparable; T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<long int>]'
../boost/hana/detail/has_common_embedding.hpp:49:12:   required from 'struct boost::hana::detail::has_nontrivial_common_embedding_impl<boost::hana::Comparable, boost::hana::ext::boost::mpl::integral_c_tag<int>, boost::hana::integral_constant_tag<long int> >'
../boost/hana/equal.hpp:79:68:   required by substitution of 'template<class T, class U> struct boost::hana::equal_impl<T, U, boost::hana::when<(typename boost::hana::detail::has_nontrivial_common_embedding_impl<boost::hana::Comparable, T, U>::type::value && (! boost::hana::detail::EqualityComparable<T, U>::value))> > [with T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<long int>]'
../boost/hana/fwd/equal.hpp:69:12:   required from 'struct boost::hana::equal_impl<boost::hana::ext::boost::mpl::integral_c_tag<int>, boost::hana::integral_constant_tag<long int>, void>'
../boost/hana/equal.hpp:50:28:   required from 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = mpl_::integral_c<int, 1>; Y = const boost::hana::integral_constant<long int, 1>&]'
../boost/hana/detail/operators/comparable.hpp:37:29:   required from 'constexpr auto boost::hana::detail::operators::operator==(X&&, Y&&) [with X = mpl_::integral_c<int, 1>; Y = const boost::hana::integral_constant<long int, 1>&; <template-parameter-1-3> = void]'
../libs/hana/test/ext/boost/mpl/integral_c/interop.cpp:20:5:   required from here
../boost/hana/core/common.hpp:31:12: error: ambiguous template instantiation for 'struct boost::hana::common<boost::hana::ext::boost::mpl::integral_c_tag<int>, boost::hana::integral_constant_tag<long int>, boost::hana::when<true> >'
../boost/hana/core/common.hpp:35:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::common<T, U, boost::hana::when<condition> > [with T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<long int>; bool condition = true]'
   35 |     struct common<T, U, when<condition>>
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/core/common.hpp:78:12: note:                 'template<class A, class B> struct boost::hana::common<A, B, boost::hana::when<((boost::hana::Constant<C>::value && boost::hana::Constant<C>::value) && boost::hana::has_common<typename A::value_type, typename B::value_type>::value)> > [with A = boost::hana::ext::boost::mpl::integral_c_tag<int>; B = boost::hana::integral_constant_tag<long int>]'
   78 |     struct common<A, B, when<
      |            ^~~~~~~~~~~~~~~~~~
   79 |         hana::Constant<A>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   80 |         hana::Constant<B>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   81 |         has_common<typename A::value_type, typename B::value_type>::value
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   82 |     >> {
      |     ~~      
../boost/hana/core/common.hpp:31:12: error: invalid use of incomplete type 'struct boost::hana::common<boost::hana::ext::boost::mpl::integral_c_tag<int>, boost::hana::integral_constant_tag<long int>, boost::hana::when<true> >'
   31 |     struct common : common<T, U, when<true>> { };
      |            ^~~~~~
../boost/hana/core/common.hpp:31:12: note: declaration of 'struct boost::hana::common<boost::hana::ext::boost::mpl::integral_c_tag<int>, boost::hana::integral_constant_tag<long int>, boost::hana::when<true> >'
../boost/hana/equal.hpp: In instantiation of 'static constexpr auto boost::hana::equal_impl<T, U, boost::hana::when<condition> >::apply(const X&, const Y&) [with X = mpl_::integral_c<int, 1>; Y = boost::hana::integral_constant<long int, 1>; T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<long int>; bool condition = true]':
../boost/hana/equal.hpp:50:28:   required from 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = mpl_::integral_c<int, 1>; Y = const boost::hana::integral_constant<long int, 1>&]'
../boost/hana/detail/operators/comparable.hpp:37:29:   required from 'constexpr auto boost::hana::detail::operators::operator==(X&&, Y&&) [with X = mpl_::integral_c<int, 1>; Y = const boost::hana::integral_constant<long int, 1>&; <template-parameter-1-3> = void]'
../libs/hana/test/ext/boost/mpl/integral_c/interop.cpp:20:5:   required from here
../boost/hana/equal.hpp:60:57: error: static assertion failed: No default implementation of hana::equal is provided for related types that can't be safely embedded into a common type, because those are most likely programming errors. If this is really what you want, you can manually convert both objects to a common Comparable type before performing the comparison. If you think you have made your types Comparable but you see this, perhaps you forgot to define some of the necessary methods for an automatic model of Comparable to kick in. A possible culprit is defining 'operator==' but not 'operator!='.
   60 |             static_assert(!hana::is_convertible<T_, U>::value &&
      |                                                         ^~~~~
../boost/hana/equal.hpp:60:57: note: '!(bool)std::integral_constant<bool, true>::value' evaluates to false
../boost/hana/assert.hpp:232:10: error: static assertion failed: mpl::integral_c<int, 1>{} == hana::long_c<1>
  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/ext/boost/mpl/integral_c/interop.cpp:20:5: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
   20 |     BOOST_HANA_CONSTANT_CHECK(mpl::integral_c<int, 1>{} == hana::long_c<1>);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/equal.hpp: In instantiation of 'static constexpr auto boost::hana::equal_impl<T, U, boost::hana::when<condition> >::apply(const X&, const Y&) [with X = mpl_::integral_c<int, 2>; Y = boost::hana::integral_constant<int, 3>; T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<int>; bool condition = true]':
../boost/hana/equal.hpp:50:28:   required from 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = mpl_::integral_c<int, 2>; Y = const boost::hana::integral_constant<int, 3>&]'
../boost/hana/not_equal.hpp:40:42:   required from 'static constexpr decltype(auto) boost::hana::not_equal_impl<T, U, boost::hana::when<condition> >::apply(X&&, Y&&) [with X = mpl_::integral_c<int, 2>; Y = const boost::hana::integral_constant<int, 3>&; T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<int>; bool condition = true]'
../boost/hana/not_equal.hpp:32:31:   required from 'constexpr auto boost::hana::not_equal_t::operator()(X&&, Y&&) const [with X = mpl_::integral_c<int, 2>; Y = const boost::hana::integral_constant<int, 3>&]'
../boost/hana/detail/operators/comparable.hpp:48:33:   required from 'constexpr auto boost::hana::detail::operators::operator!=(X&&, Y&&) [with X = mpl_::integral_c<int, 2>; Y = const boost::hana::integral_constant<int, 3>&; <template-parameter-1-3> = void]'
../libs/hana/test/ext/boost/mpl/integral_c/interop.cpp:22:5:   required from here
../boost/hana/equal.hpp:60:57: error: static assertion failed: No default implementation of hana::equal is provided for related types that can't be safely embedded into a common type, because those are most likely programming errors. If this is really what you want, you can manually convert both objects to a common Comparable type before performing the comparison. If you think you have made your types Comparable but you see this, perhaps you forgot to define some of the necessary methods for an automatic model of Comparable to kick in. A possible culprit is defining 'operator==' but not 'operator!='.
   60 |             static_assert(!hana::is_convertible<T_, U>::value &&
      |                                                         ^~~~~
../boost/hana/equal.hpp:60:57: note: '!(bool)std::integral_constant<bool, true>::value' evaluates to false
In file included from ../boost/hana/detail/operators/logical.hpp:16,
                 from ../boost/hana/bool.hpp:21:
../boost/hana/fwd/not.hpp: In instantiation of 'struct boost::hana::not_impl<boost::hana::integral_constant_tag<bool>, 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::not_impl<boost::hana::integral_constant_tag<bool>, void>]'
../boost/hana/concept/logical.hpp:29:62:   required from 'struct boost::hana::Logical<boost::hana::integral_constant_tag<bool> >'
../boost/hana/not.hpp:30:15:   required from 'constexpr decltype(auto) boost::hana::not_t::operator()(X&&) const [with X = boost::hana::integral_constant<bool, false>]'
../boost/hana/not_equal.hpp:40:30:   required from 'static constexpr decltype(auto) boost::hana::not_equal_impl<T, U, boost::hana::when<condition> >::apply(X&&, Y&&) [with X = mpl_::integral_c<int, 2>; Y = const boost::hana::integral_constant<int, 3>&; T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<int>; bool condition = true]'
../boost/hana/not_equal.hpp:32:31:   required from 'constexpr auto boost::hana::not_equal_t::operator()(X&&, Y&&) const [with X = mpl_::integral_c<int, 2>; Y = const boost::hana::integral_constant<int, 3>&]'
../boost/hana/detail/operators/comparable.hpp:48:33:   required from 'constexpr auto boost::hana::detail::operators::operator!=(X&&, Y&&) [with X = mpl_::integral_c<int, 2>; Y = const boost::hana::integral_constant<int, 3>&; <template-parameter-1-3> = void]'
../libs/hana/test/ext/boost/mpl/integral_c/interop.cpp:22:5:   required from here
../boost/hana/fwd/not.hpp:36:12: error: ambiguous template instantiation for 'struct boost::hana::not_impl<boost::hana::integral_constant_tag<bool>, boost::hana::when<true> >'
   36 |     struct not_impl : not_impl<L, when<true>> { };
      |            ^~~~~~~~
In file included from ../boost/hana/concept/logical.hpp:20:
../boost/hana/not.hpp:44:12: note: candidates are: 'template<class L, bool condition> struct boost::hana::not_impl<L, boost::hana::when<condition> > [with L = boost::hana::integral_constant_tag<bool>; bool condition = true]'
   44 |     struct not_impl<L, when<condition>> : hana::default_ {
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/not.hpp:65:12: note:                 'template<class C> struct boost::hana::not_impl<C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Logical<typename C::value_type>::value)> > [with C = boost::hana::integral_constant_tag<bool>]'
   65 |     struct not_impl<C, hana::when<
      |            ^~~~~~~~~~~~~~~~~~~~~~~
   66 |         hana::Constant<C>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   67 |         hana::Logical<typename C::value_type>::value
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   68 |     >> {
      |     ~~      
../boost/hana/fwd/not.hpp:36:12: error: invalid use of incomplete type 'struct boost::hana::not_impl<boost::hana::integral_constant_tag<bool>, boost::hana::when<true> >'
   36 |     struct not_impl : not_impl<L, when<true>> { };
      |            ^~~~~~~~
../boost/hana/fwd/not.hpp:36:12: note: declaration of 'struct boost::hana::not_impl<boost::hana::integral_constant_tag<bool>, boost::hana::when<true> >'
In file included from ../boost/hana/while.hpp:13,
                 from ../boost/hana/concept/logical.hpp:21:
../boost/hana/fwd/while.hpp: In instantiation of 'struct boost::hana::while_impl<boost::hana::integral_constant_tag<bool>, 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::while_impl<boost::hana::integral_constant_tag<bool>, void>]'
../boost/hana/concept/logical.hpp:30:64:   required from 'struct boost::hana::Logical<boost::hana::integral_constant_tag<bool> >'
../boost/hana/not.hpp:30:15:   required from 'constexpr decltype(auto) boost::hana::not_t::operator()(X&&) const [with X = boost::hana::integral_constant<bool, false>]'
../boost/hana/not_equal.hpp:40:30:   required from 'static constexpr decltype(auto) boost::hana::not_equal_impl<T, U, boost::hana::when<condition> >::apply(X&&, Y&&) [with X = mpl_::integral_c<int, 2>; Y = const boost::hana::integral_constant<int, 3>&; T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<int>; bool condition = true]'
../boost/hana/not_equal.hpp:32:31:   required from 'constexpr auto boost::hana::not_equal_t::operator()(X&&, Y&&) const [with X = mpl_::integral_c<int, 2>; Y = const boost::hana::integral_constant<int, 3>&]'
../boost/hana/detail/operators/comparable.hpp:48:33:   required from 'constexpr auto boost::hana::detail::operators::operator!=(X&&, Y&&) [with X = mpl_::integral_c<int, 2>; Y = const boost::hana::integral_constant<int, 3>&; <template-parameter-1-3> = void]'
../libs/hana/test/ext/boost/mpl/integral_c/interop.cpp:22:5:   required from here
../boost/hana/fwd/while.hpp:60:12: error: ambiguous template instantiation for 'struct boost::hana::while_impl<boost::hana::integral_constant_tag<bool>, boost::hana::when<true> >'
   60 |     struct while_impl : while_impl<L, when<true>> { };
      |            ^~~~~~~~~~
../boost/hana/while.hpp:49:12: note: candidates are: 'template<class L, bool condition> struct boost::hana::while_impl<L, boost::hana::when<condition> > [with L = boost::hana::integral_constant_tag<bool>; bool condition = true]'
   49 |     struct while_impl<L, hana::when<condition>> : hana::default_ {
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/while.hpp:76:12: note:                 'template<class C> struct boost::hana::while_impl<C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Logical<typename C::value_type>::value)> > [with C = boost::hana::integral_constant_tag<bool>]'
   76 |     struct while_impl<C, hana::when<
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~
   77 |         hana::Constant<C>::value &&
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   78 |         hana::Logical<typename C::value_type>::value
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   79 |     >> {
      |     ~~      
../boost/hana/fwd/while.hpp:60:12: error: invalid use of incomplete type 'struct boost::hana::while_impl<boost::hana::integral_constant_tag<bool>, boost::hana::when<true> >'
   60 |     struct while_impl : while_impl<L, when<true>> { };
      |            ^~~~~~~~~~
../boost/hana/fwd/while.hpp:60:12: note: declaration of 'struct boost::hana::while_impl<boost::hana::integral_constant_tag<bool>, boost::hana::when<true> >'
../boost/hana/not.hpp: In instantiation of 'constexpr decltype(auto) boost::hana::not_t::operator()(X&&) const [with X = boost::hana::integral_constant<bool, false>]':
../boost/hana/not_equal.hpp:40:30:   required from 'static constexpr decltype(auto) boost::hana::not_equal_impl<T, U, boost::hana::when<condition> >::apply(X&&, Y&&) [with X = mpl_::integral_c<int, 2>; Y = const boost::hana::integral_constant<int, 3>&; T = boost::hana::ext::boost::mpl::integral_c_tag<int>; U = boost::hana::integral_constant_tag<int>; bool condition = true]'
../boost/hana/not_equal.hpp:32:31:   required from 'constexpr auto boost::hana::not_equal_t::operator()(X&&, Y&&) const [with X = mpl_::integral_c<int, 2>; Y = const boost::hana::integral_constant<int, 3>&]'
../boost/hana/detail/operators/comparable.hpp:48:33:   required from 'constexpr auto boost::hana::detail::operators::operator!=(X&&, Y&&) [with X = mpl_::integral_c<int, 2>; Y = const boost::hana::integral_constant<int, 3>&; <template-parameter-1-3> = void]'
../libs/hana/test/ext/boost/mpl/integral_c/interop.cpp:22:5:   required from here
../boost/hana/not.hpp:39:26: error: 'apply' is not a member of 'Not' {aka 'boost::hana::not_impl<boost::hana::integral_constant_tag<bool>, void>'}
   39 |         return Not::apply(static_cast<X&&>(x));
      |                ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
../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/ext/boost/mpl/integral_c/interop.cpp:22:5: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
   22 |     BOOST_HANA_CONSTANT_CHECK(mpl::integral_c<int, 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/ext/boost/mpl/integral_c/interop.cpp:22:5: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
   22 |     BOOST_HANA_CONSTANT_CHECK(mpl::integral_c<int, 2>{} != hana::int_c<3>);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
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/ext/boost/mpl/integral_c/interop.cpp:22:5: note: in expansion of macro 'BOOST_HANA_CONSTANT_CHECK'
   22 |     BOOST_HANA_CONSTANT_CHECK(mpl::integral_c<int, 2>{} != hana::int_c<3>);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
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