Test output: teeks99-dkr-mg12 - hana - test~detail~has_duplicates / gcc-12~c++17
Rev 7e09330c84621efd22370bf57289b67c7283ee21 / Sat, 16 Nov 2024 09:26:04 +0000
Compile [2024-11-16 12:16:26 UTC]: fail


    "g++-12"   -fvisibility-inlines-hidden -std=c++17 -fPIC -m64 -pthread -O0 -fno-inline -Wall -fvisibility=hidden  -DBOOST_ALL_NO_LIB=1 -DBOOST_COBALT_USE_STD_PMR=1   -I".." -I"../libs/hana/test/_include" -I"/var/boost/run/boost_root/libs/assert/include" -I"/var/boost/run/boost_root/libs/core/include" -I"/var/boost/run/boost_root/libs/hana/include" -I"/var/boost/run/boost_root/libs/throw_exception/include" -I"/var/boost/run/boost_root/libs/tuple/include"  -c -o "/var/boost/run/results/boost/bin.v2/libs/hana/test/test~detail~has_duplicates.test/gcc-12~c++17/debug/x86_64/debug-symbols-off/threading-multi/visibility-hidden/detail/has_duplicates.o" "../libs/hana/test/detail/has_duplicates.cpp"

In file included from ../boost/hana/equal.hpp:13,
                 from ../boost/hana/detail/has_duplicates.hpp:15,
                 from ../libs/hana/test/detail/has_duplicates.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, 0>; Y = boost::hana::integral_constant<int, 0>]'
../boost/hana/detail/has_duplicates.hpp:26:34:   required from 'constexpr std::size_t boost::hana::detail::pack_count() [with T = boost::hana::integral_constant<int, 0>; U = {boost::hana::integral_constant<int, 0>}; std::size_t = long unsigned int]'
../boost/hana/detail/has_duplicates.hpp:60:59:   required from 'constexpr const bool boost::hana::detail::has_duplicates<boost::hana::integral_constant<int, 0> >::value'
../libs/hana/test/detail/has_duplicates.cpp:14:4:   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>> { };
      |            ^~~~~~~~~~
../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, 0>; Y = boost::hana::integral_constant<int, 0>]':
../boost/hana/detail/has_duplicates.hpp:26:34:   required from 'constexpr std::size_t boost::hana::detail::pack_count() [with T = boost::hana::integral_constant<int, 0>; U = {boost::hana::integral_constant<int, 0>}; std::size_t = long unsigned int]'
../boost/hana/detail/has_duplicates.hpp:60:59:   required from 'constexpr const bool boost::hana::detail::has_duplicates<boost::hana::integral_constant<int, 0> >::value'
../libs/hana/test/detail/has_duplicates.cpp:14:4:   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));
      |                ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/detail/has_duplicates.cpp:12:15: error: non-constant condition for static assertion
   12 | static_assert(!hana::detail::has_duplicates<
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   13 |     hana::int_<0>
      |     ~~~~~~~~~~~~~
   14 | >::value, "");
      | ~~~~~~~~       
../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 = boost::hana::integral_constant<int, 0>]':
../boost/hana/detail/has_duplicates.hpp:26:34:   required from 'constexpr std::size_t boost::hana::detail::pack_count() [with T = boost::hana::integral_constant<int, 1>; U = {boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<int, 1>}; std::size_t = long unsigned int]'
../boost/hana/detail/has_duplicates.hpp:60:59:   required from 'constexpr const bool boost::hana::detail::has_duplicates<boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<int, 1> >::value'
../libs/hana/test/detail/has_duplicates.cpp:18:4:   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));
      |                ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/detail/has_duplicates.cpp:16:15: error: non-constant condition for static assertion
   16 | static_assert(!hana::detail::has_duplicates<
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   17 |     hana::int_<0>, hana::int_<1>
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   18 | >::value, "");
      | ~~~~~~~~       
../boost/hana/equal.hpp: In instantiation of 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::integral_constant<int, 2>; Y = boost::hana::integral_constant<int, 0>]':
../boost/hana/detail/has_duplicates.hpp:26:34:   required from 'constexpr std::size_t boost::hana::detail::pack_count() [with T = boost::hana::integral_constant<int, 2>; U = {boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<int, 1>, boost::hana::integral_constant<int, 2>}; std::size_t = long unsigned int]'
../boost/hana/detail/has_duplicates.hpp:60:59:   required from 'constexpr const bool boost::hana::detail::has_duplicates<boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<int, 1>, boost::hana::integral_constant<int, 2> >::value'
../libs/hana/test/detail/has_duplicates.cpp:22:4:   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));
      |                ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/detail/has_duplicates.cpp:20:15: error: non-constant condition for static assertion
   20 | static_assert(!hana::detail::has_duplicates<
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   21 |     hana::int_<0>, hana::int_<1>, hana::int_<2>
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   22 | >::value, "");
      | ~~~~~~~~       
../libs/hana/test/detail/has_duplicates.cpp:26:4: error: non-constant condition for static assertion
   24 | static_assert(hana::detail::has_duplicates<
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   25 |     hana::int_<0>, hana::int_<0>, hana::int_<2>
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   26 | >::value, "");
      | ~~~^~~~~
../libs/hana/test/detail/has_duplicates.cpp:30:4: error: non-constant condition for static assertion
   28 | static_assert(hana::detail::has_duplicates<
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   29 |     hana::int_<0>, hana::int_<1>, hana::int_<0>
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   30 | >::value, "");
      | ~~~^~~~~
../libs/hana/test/detail/has_duplicates.cpp:34:4: error: non-constant condition for static assertion
   32 | static_assert(hana::detail::has_duplicates<
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   33 |     hana::int_<0>, hana::int_<1>, hana::int_<2>, hana::int_<1>
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   34 | >::value, "");
      | ~~~^~~~~
../libs/hana/test/detail/has_duplicates.cpp:38:4: error: non-constant condition for static assertion
   36 | static_assert(hana::detail::has_duplicates<
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   37 |     hana::int_<0>, hana::int_<1>, hana::int_<2>, hana::int_<2>
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   38 | >::value, "");
      | ~~~^~~~~
../libs/hana/test/detail/has_duplicates.cpp:42:4: error: non-constant condition for static assertion
   40 | static_assert(hana::detail::has_duplicates<
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   41 |     hana::int_<0>, hana::int_<1>, hana::int_<2>, hana::int_<1>, hana::int_<1>
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   42 | >::value, "");
      | ~~~^~~~~
../libs/hana/test/detail/has_duplicates.cpp:46:4: error: non-constant condition for static assertion
   44 | static_assert(hana::detail::has_duplicates<
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   45 |     hana::int_<0>, hana::int_<1>, hana::int_<2>, hana::int_<1>, hana::int_<2>
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   46 | >::value, "");
      | ~~~^~~~~
In file included from ../boost/hana/core/to.hpp:19,
                 from ../boost/hana/bool.hpp:17,
                 from ../boost/hana/integral_constant.hpp:13,
                 from ../boost/hana/drop_front.hpp:20,
                 from ../boost/hana/concept/iterable.hpp:20,
                 from ../boost/hana/at.hpp:16,
                 from ../boost/hana/any_of.hpp:16,
                 from ../boost/hana/all_of.hpp:15,
                 from ../boost/hana/equal.hpp:16:
../boost/hana/core/common.hpp: In instantiation of 'struct boost::hana::common<boost::hana::integral_constant_tag<long 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::integral_constant_tag<long 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::integral_constant_tag<long 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::integral_constant_tag<long 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::integral_constant_tag<long 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::integral_constant_tag<long int>; U = boost::hana::integral_constant_tag<int>]'
../boost/hana/fwd/equal.hpp:69:12:   required from 'struct boost::hana::equal_impl<boost::hana::integral_constant_tag<long 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<long int, 0>; Y = boost::hana::integral_constant<int, 0>]'
../boost/hana/detail/has_duplicates.hpp:26:34:   required from 'constexpr std::size_t boost::hana::detail::pack_count() [with T = boost::hana::integral_constant<long int, 0>; U = {boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<long int, 0>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<int, 3>}; std::size_t = long unsigned int]'
../boost/hana/detail/has_duplicates.hpp:60:59:   required from 'constexpr const bool boost::hana::detail::has_duplicates<boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<long int, 0>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<int, 3> >::value'
../libs/hana/test/detail/has_duplicates.cpp:51:4:   required from here
../boost/hana/core/common.hpp:31:12: error: ambiguous template instantiation for 'struct boost::hana::common<boost::hana::integral_constant_tag<long 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::integral_constant_tag<long 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::integral_constant_tag<long 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::integral_constant_tag<long 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::integral_constant_tag<long int>, int, boost::hana::when<true> >'
../boost/hana/core/common.hpp: In instantiation of 'struct boost::hana::common<long 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 = long 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::integral_constant_tag<long 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::integral_constant_tag<long 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::integral_constant_tag<long 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::integral_constant_tag<long int>; U = boost::hana::integral_constant_tag<int>]'
../boost/hana/fwd/equal.hpp:69:12:   required from 'struct boost::hana::equal_impl<boost::hana::integral_constant_tag<long 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<long int, 0>; Y = boost::hana::integral_constant<int, 0>]'
../boost/hana/detail/has_duplicates.hpp:26:34:   required from 'constexpr std::size_t boost::hana::detail::pack_count() [with T = boost::hana::integral_constant<long int, 0>; U = {boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<long int, 0>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<int, 3>}; std::size_t = long unsigned int]'
../boost/hana/detail/has_duplicates.hpp:60:59:   required from 'constexpr const bool boost::hana::detail::has_duplicates<boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<long int, 0>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<int, 3> >::value'
../libs/hana/test/detail/has_duplicates.cpp:51:4:   required from here
../boost/hana/core/common.hpp:31:12: error: ambiguous template instantiation for 'struct boost::hana::common<long 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 = long 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 = long 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<long 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<long 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::integral_constant_tag<long 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::integral_constant_tag<long 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::integral_constant_tag<long 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::integral_constant_tag<long int>; U = boost::hana::integral_constant_tag<int>]'
../boost/hana/fwd/equal.hpp:69:12:   required from 'struct boost::hana::equal_impl<boost::hana::integral_constant_tag<long 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<long int, 0>; Y = boost::hana::integral_constant<int, 0>]'
../boost/hana/detail/has_duplicates.hpp:26:34:   required from 'constexpr std::size_t boost::hana::detail::pack_count() [with T = boost::hana::integral_constant<long int, 0>; U = {boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<long int, 0>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<int, 3>}; std::size_t = long unsigned int]'
../boost/hana/detail/has_duplicates.hpp:60:59:   required from 'constexpr const bool boost::hana::detail::has_duplicates<boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<long int, 0>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<int, 3> >::value'
../libs/hana/test/detail/has_duplicates.cpp:51:4:   required from here
../boost/hana/core/common.hpp:31:12: error: ambiguous template instantiation for 'struct boost::hana::common<boost::hana::integral_constant_tag<long 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::integral_constant_tag<long 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::integral_constant_tag<long 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::integral_constant_tag<long 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::integral_constant_tag<long int>, boost::hana::integral_constant_tag<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 = boost::hana::integral_constant<long int, 0>; Y = boost::hana::integral_constant<int, 0>; T = boost::hana::integral_constant_tag<long 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 = boost::hana::integral_constant<long int, 0>; Y = boost::hana::integral_constant<int, 0>]'
../boost/hana/detail/has_duplicates.hpp:26:34:   required from 'constexpr std::size_t boost::hana::detail::pack_count() [with T = boost::hana::integral_constant<long int, 0>; U = {boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<long int, 0>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<int, 3>}; std::size_t = long unsigned int]'
../boost/hana/detail/has_duplicates.hpp:60:59:   required from 'constexpr const bool boost::hana::detail::has_duplicates<boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<long int, 0>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<int, 3> >::value'
../libs/hana/test/detail/has_duplicates.cpp:51:4:   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/fwd/equal.hpp: In instantiation of 'struct boost::hana::equal_impl<boost::hana::integral_constant_tag<long 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 = boost::hana::integral_constant<long int, 0>; Y = boost::hana::integral_constant<long int, 0>]'
../boost/hana/detail/has_duplicates.hpp:26:34:   required from 'constexpr std::size_t boost::hana::detail::pack_count() [with T = boost::hana::integral_constant<long int, 0>; U = {boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<long int, 0>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<int, 3>}; std::size_t = long unsigned int]'
../boost/hana/detail/has_duplicates.hpp:60:59:   required from 'constexpr const bool boost::hana::detail::has_duplicates<boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<long int, 0>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<int, 3> >::value'
../libs/hana/test/detail/has_duplicates.cpp:51:4:   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<long int>, boost::hana::integral_constant_tag<long int>, boost::hana::when<true> >'
   69 |     struct equal_impl : equal_impl<T, U, when<true>> { };
      |            ^~~~~~~~~~
../boost/hana/equal.hpp:55:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::equal_impl<T, U, boost::hana::when<condition> > [with T = boost::hana::integral_constant_tag<long int>; U = boost::hana::integral_constant_tag<long 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<long 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<long int>, boost::hana::integral_constant_tag<long 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<long int>, boost::hana::integral_constant_tag<long 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<long int, 0>; Y = boost::hana::integral_constant<long int, 0>]':
../boost/hana/detail/has_duplicates.hpp:26:34:   required from 'constexpr std::size_t boost::hana::detail::pack_count() [with T = boost::hana::integral_constant<long int, 0>; U = {boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<long int, 0>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<int, 3>}; std::size_t = long unsigned int]'
../boost/hana/detail/has_duplicates.hpp:60:59:   required from 'constexpr const bool boost::hana::detail::has_duplicates<boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<long int, 0>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<int, 3> >::value'
../libs/hana/test/detail/has_duplicates.cpp:51:4:   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<long int>, boost::hana::integral_constant_tag<long int>, void>'}
   50 |         return Equal::apply(static_cast<X&&>(x), static_cast<Y&&>(y));
      |                ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/equal.hpp: In instantiation of 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::integral_constant<int, 3>; Y = boost::hana::integral_constant<int, 0>]':
../boost/hana/detail/has_duplicates.hpp:26:34:   required from 'constexpr std::size_t boost::hana::detail::pack_count() [with T = boost::hana::integral_constant<int, 3>; U = {boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<long int, 0>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<int, 3>}; std::size_t = long unsigned int]'
../boost/hana/detail/has_duplicates.hpp:60:59:   required from 'constexpr const bool boost::hana::detail::has_duplicates<boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<long int, 0>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<int, 3> >::value'
../libs/hana/test/detail/has_duplicates.cpp:51:4:   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>'}
../libs/hana/test/detail/has_duplicates.cpp:51:4: error: non-constant condition for static assertion
   49 | static_assert(hana::detail::has_duplicates<
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   50 |     hana::int_<0>, hana::long_<0>, hana::int_<2>, hana::int_<3>
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   51 | >::value, "");
      | ~~~^~~~~
../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 = boost::hana::integral_constant<long int, 1>; Y = boost::hana::integral_constant<int, 0>; T = boost::hana::integral_constant_tag<long 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 = boost::hana::integral_constant<long int, 1>; Y = boost::hana::integral_constant<int, 0>]'
../boost/hana/detail/has_duplicates.hpp:26:34:   required from 'constexpr std::size_t boost::hana::detail::pack_count() [with T = boost::hana::integral_constant<long int, 1>; U = {boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<int, 1>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<long int, 1>}; std::size_t = long unsigned int]'
../boost/hana/detail/has_duplicates.hpp:60:59:   required from 'constexpr const bool boost::hana::detail::has_duplicates<boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<int, 1>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<long int, 1> >::value'
../libs/hana/test/detail/has_duplicates.cpp:55:4:   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/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 = boost::hana::integral_constant<long int, 1>; Y = boost::hana::integral_constant<int, 1>; T = boost::hana::integral_constant_tag<long 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 = boost::hana::integral_constant<long int, 1>; Y = boost::hana::integral_constant<int, 1>]'
../boost/hana/detail/has_duplicates.hpp:26:34:   required from 'constexpr std::size_t boost::hana::detail::pack_count() [with T = boost::hana::integral_constant<long int, 1>; U = {boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<int, 1>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<long int, 1>}; std::size_t = long unsigned int]'
../boost/hana/detail/has_duplicates.hpp:60:59:   required from 'constexpr const bool boost::hana::detail::has_duplicates<boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<int, 1>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<long int, 1> >::value'
../libs/hana/test/detail/has_duplicates.cpp:55:4:   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!='.
../boost/hana/equal.hpp:60:57: note: '!(bool)std::integral_constant<bool, true>::value' evaluates to false
../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 = boost::hana::integral_constant<long int, 1>; Y = boost::hana::integral_constant<int, 2>; T = boost::hana::integral_constant_tag<long 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 = boost::hana::integral_constant<long int, 1>; Y = boost::hana::integral_constant<int, 2>]'
../boost/hana/detail/has_duplicates.hpp:26:34:   required from 'constexpr std::size_t boost::hana::detail::pack_count() [with T = boost::hana::integral_constant<long int, 1>; U = {boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<int, 1>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<long int, 1>}; std::size_t = long unsigned int]'
../boost/hana/detail/has_duplicates.hpp:60:59:   required from 'constexpr const bool boost::hana::detail::has_duplicates<boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<int, 1>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<long int, 1> >::value'
../libs/hana/test/detail/has_duplicates.cpp:55:4:   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!='.
../boost/hana/equal.hpp:60:57: note: '!(bool)std::integral_constant<bool, true>::value' evaluates to false
../boost/hana/equal.hpp: In instantiation of 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::integral_constant<long int, 1>; Y = boost::hana::integral_constant<long int, 1>]':
../boost/hana/detail/has_duplicates.hpp:26:34:   required from 'constexpr std::size_t boost::hana::detail::pack_count() [with T = boost::hana::integral_constant<long int, 1>; U = {boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<int, 1>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<long int, 1>}; std::size_t = long unsigned int]'
../boost/hana/detail/has_duplicates.hpp:60:59:   required from 'constexpr const bool boost::hana::detail::has_duplicates<boost::hana::integral_constant<int, 0>, boost::hana::integral_constant<int, 1>, boost::hana::integral_constant<int, 2>, boost::hana::integral_constant<long int, 1> >::value'
../libs/hana/test/detail/has_duplicates.cpp:55:4:   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<long int>, boost::hana::integral_constant_tag<long int>, void>'}
   50 |         return Equal::apply(static_cast<X&&>(x), static_cast<Y&&>(y));
      |                ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/detail/has_duplicates.cpp:55:4: error: non-constant condition for static assertion
   53 | static_assert(hana::detail::has_duplicates<
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   54 |     hana::int_<0>, hana::int_<1>, hana::int_<2>, hana::long_<1>
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   55 | >::value, "");
      | ~~~^~~~~