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, "");
| ~~~^~~~~