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~issues~github_269.test/gcc-12~c++17/debug/x86_64/debug-symbols-off/threading-multi/visibility-hidden/issues/github_269.o" "../libs/hana/test/issues/github_269.cpp"
In file included from ../boost/hana/detail/operators/arithmetic.hpp:17,
from ../boost/hana/bool.hpp:19,
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/issues/github_269.cpp:5:
../boost/hana/fwd/mod.hpp: In instantiation of 'struct boost::hana::mod_impl<int, int, void>':
../boost/hana/core/default.hpp:26:9: required by substitution of 'template<class Method> struct boost::hana::is_default<Method, decltype ((void)(static_cast<boost::hana::default_>((*(Method*)(0)))))> [with Method = boost::hana::mod_impl<int, int, void>]'
../boost/hana/core/tag_of.hpp:24:12: recursively required by substitution of 'template<class T> struct boost::hana::tag_of<T, boost::hana::when<boost::hana::core_detail::is_valid<typename T::hana_tag>::value> > [with T = boost::hana::EuclideanRing<int>]'
../boost/hana/core/tag_of.hpp:24:12: required from 'struct boost::hana::tag_of<boost::hana::EuclideanRing<int>, void>'
../boost/hana/concept/integral_constant.hpp:37:12: required from 'struct boost::hana::IntegralConstant<boost::hana::EuclideanRing<int> >'
../libs/hana/test/issues/github_269.cpp:16:1: required from here
../boost/hana/fwd/mod.hpp:51:12: error: ambiguous template instantiation for 'struct boost::hana::mod_impl<int, int, boost::hana::when<true> >'
51 | struct mod_impl : mod_impl<T, U, when<true>> { };
| ^~~~~~~~
In file included from ../boost/hana/concept/euclidean_ring.hpp:20,
from ../boost/hana/concept.hpp:17,
from ../libs/hana/test/issues/github_269.cpp:6:
../boost/hana/mod.hpp:56:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::mod_impl<T, U, boost::hana::when<condition> > [with T = int; U = int; bool condition = true]'
56 | struct mod_impl<T, U, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/mod.hpp:78:12: note: 'template<class T> struct boost::hana::mod_impl<T, T, boost::hana::when<(std::is_integral<_Tp>::value && (! std::is_same<T, bool>::value))> > [with T = int]'
78 | struct mod_impl<T, T, when<std::is_integral<T>::value &&
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
79 | !std::is_same<T, bool>::value>> {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/fwd/mod.hpp:51:12: error: invalid use of incomplete type 'struct boost::hana::mod_impl<int, int, boost::hana::when<true> >'
51 | struct mod_impl : mod_impl<T, U, when<true>> { };
| ^~~~~~~~
../boost/hana/fwd/mod.hpp:51:12: note: declaration of 'struct boost::hana::mod_impl<int, int, boost::hana::when<true> >'
In file included from ../boost/hana/detail/operators/arithmetic.hpp:15:
../boost/hana/fwd/div.hpp: In instantiation of 'struct boost::hana::div_impl<int, int, void>':
../boost/hana/core/default.hpp:26:9: required by substitution of 'template<class Method> struct boost::hana::is_default<Method, decltype ((void)(static_cast<boost::hana::default_>((*(Method*)(0)))))> [with Method = boost::hana::div_impl<int, int, void>]'
../boost/hana/core/tag_of.hpp:24:12: recursively required by substitution of 'template<class T> struct boost::hana::tag_of<T, boost::hana::when<boost::hana::core_detail::is_valid<typename T::hana_tag>::value> > [with T = boost::hana::EuclideanRing<int>]'
../boost/hana/core/tag_of.hpp:24:12: required from 'struct boost::hana::tag_of<boost::hana::EuclideanRing<int>, void>'
../boost/hana/concept/integral_constant.hpp:37:12: required from 'struct boost::hana::IntegralConstant<boost::hana::EuclideanRing<int> >'
../libs/hana/test/issues/github_269.cpp:16:1: required from here
../boost/hana/fwd/div.hpp:48:12: error: ambiguous template instantiation for 'struct boost::hana::div_impl<int, int, boost::hana::when<true> >'
48 | struct div_impl : div_impl<T, U, when<true>> { };
| ^~~~~~~~
In file included from ../boost/hana/concept/euclidean_ring.hpp:19:
../boost/hana/div.hpp:56:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::div_impl<T, U, boost::hana::when<condition> > [with T = int; U = int; bool condition = true]'
56 | struct div_impl<T, U, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/div.hpp:78:12: note: 'template<class T> struct boost::hana::div_impl<T, T, boost::hana::when<(std::is_integral<_Tp>::value && (! std::is_same<T, bool>::value))> > [with T = int]'
78 | struct div_impl<T, T, when<std::is_integral<T>::value &&
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
79 | !std::is_same<T, bool>::value>> {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/fwd/div.hpp:48:12: error: invalid use of incomplete type 'struct boost::hana::div_impl<int, int, boost::hana::when<true> >'
48 | struct div_impl : div_impl<T, U, when<true>> { };
| ^~~~~~~~
../boost/hana/fwd/div.hpp:48:12: note: declaration of 'struct boost::hana::div_impl<int, int, boost::hana::when<true> >'
In file included from ../boost/hana/detail/operators/arithmetic.hpp:19:
../boost/hana/fwd/negate.hpp: In instantiation of 'struct boost::hana::negate_impl<int, void>':
../boost/hana/core/default.hpp:26:9: required by substitution of 'template<class Method> struct boost::hana::is_default<Method, decltype ((void)(static_cast<boost::hana::default_>((*(Method*)(0)))))> [with Method = boost::hana::negate_impl<int, void>]'
../boost/hana/core/tag_of.hpp:24:12: recursively required by substitution of 'template<class T> struct boost::hana::tag_of<T, boost::hana::when<boost::hana::core_detail::is_valid<typename T::hana_tag>::value> > [with T = boost::hana::Group<int>]'
../boost/hana/core/tag_of.hpp:24:12: required from 'struct boost::hana::tag_of<boost::hana::Group<int>, void>'
../boost/hana/concept/integral_constant.hpp:37:12: required from 'struct boost::hana::IntegralConstant<boost::hana::Group<int> >'
../libs/hana/test/issues/github_269.cpp:19:1: required from here
../boost/hana/fwd/negate.hpp:31:12: error: ambiguous template instantiation for 'struct boost::hana::negate_impl<int, boost::hana::when<true> >'
31 | struct negate_impl : negate_impl<G, when<true>> { };
| ^~~~~~~~~~~
In file included from ../boost/hana/concept/group.hpp:20,
from ../boost/hana/concept.hpp:20:
../boost/hana/negate.hpp:43:12: note: candidates are: 'template<class T, bool condition> struct boost::hana::negate_impl<T, boost::hana::when<condition> > [with T = int; bool condition = true]'
43 | struct negate_impl<T, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/negate.hpp:53:12: note: 'template<class T> struct boost::hana::negate_impl<T, boost::hana::when<(std::is_arithmetic<_Tp>::value && (! std::is_same<bool, T>::value))> > [with T = int]'
53 | struct negate_impl<T, when<std::is_arithmetic<T>::value &&
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
54 | !std::is_same<bool, T>::value>> {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/fwd/negate.hpp:31:12: error: invalid use of incomplete type 'struct boost::hana::negate_impl<int, boost::hana::when<true> >'
31 | struct negate_impl : negate_impl<G, when<true>> { };
| ^~~~~~~~~~~
../boost/hana/fwd/negate.hpp:31:12: note: declaration of 'struct boost::hana::negate_impl<int, boost::hana::when<true> >'
In file included from ../boost/hana/detail/operators/arithmetic.hpp:16:
../boost/hana/fwd/minus.hpp: In instantiation of 'struct boost::hana::minus_impl<int, int, void>':
../boost/hana/core/default.hpp:26:9: required by substitution of 'template<class Method> struct boost::hana::is_default<Method, decltype ((void)(static_cast<boost::hana::default_>((*(Method*)(0)))))> [with Method = boost::hana::minus_impl<int, int, void>]'
../boost/hana/core/tag_of.hpp:24:12: recursively required by substitution of 'template<class T> struct boost::hana::tag_of<T, boost::hana::when<boost::hana::core_detail::is_valid<typename T::hana_tag>::value> > [with T = boost::hana::Group<int>]'
../boost/hana/core/tag_of.hpp:24:12: required from 'struct boost::hana::tag_of<boost::hana::Group<int>, void>'
../boost/hana/concept/integral_constant.hpp:37:12: required from 'struct boost::hana::IntegralConstant<boost::hana::Group<int> >'
../libs/hana/test/issues/github_269.cpp:19:1: required from here
../boost/hana/fwd/minus.hpp:56:12: error: ambiguous template instantiation for 'struct boost::hana::minus_impl<int, int, boost::hana::when<true> >'
56 | struct minus_impl : minus_impl<T, U, when<true>> { };
| ^~~~~~~~~~
In file included from ../boost/hana/concept/group.hpp:19:
../boost/hana/minus.hpp:54:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::minus_impl<T, U, boost::hana::when<condition> > [with T = int; U = int; bool condition = true]'
54 | struct minus_impl<T, U, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/minus.hpp:60:12: note: 'template<class T, bool condition> struct boost::hana::minus_impl<T, T, boost::hana::when<condition> > [with T = int; bool condition = true]'
60 | struct minus_impl<T, T, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/minus.hpp:85:12: note: 'template<class T> struct boost::hana::minus_impl<T, T, boost::hana::when<(std::is_arithmetic<_Tp>::value && (! std::is_same<bool, T>::value))> > [with T = int]'
85 | struct minus_impl<T, T, when<std::is_arithmetic<T>::value &&
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
86 | !std::is_same<bool, T>::value>> {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/fwd/minus.hpp:56:12: error: invalid use of incomplete type 'struct boost::hana::minus_impl<int, int, boost::hana::when<true> >'
56 | struct minus_impl : minus_impl<T, U, when<true>> { };
| ^~~~~~~~~~
../boost/hana/fwd/minus.hpp:56:12: note: declaration of 'struct boost::hana::minus_impl<int, int, boost::hana::when<true> >'
In file included from ../boost/hana/zero.hpp:13,
from ../boost/hana/concept/monoid.hpp:20,
from ../boost/hana/plus.hpp:16,
from ../boost/hana/minus.hpp:24:
../boost/hana/fwd/zero.hpp: In instantiation of 'struct boost::hana::zero_impl<int, void>':
../boost/hana/core/default.hpp:26:9: required by substitution of 'template<class Method> struct boost::hana::is_default<Method, decltype ((void)(static_cast<boost::hana::default_>((*(Method*)(0)))))> [with Method = boost::hana::zero_impl<int, void>]'
../boost/hana/core/tag_of.hpp:24:12: recursively required by substitution of 'template<class T> struct boost::hana::tag_of<T, boost::hana::when<boost::hana::core_detail::is_valid<typename T::hana_tag>::value> > [with T = boost::hana::Monoid<int>]'
../boost/hana/core/tag_of.hpp:24:12: required from 'struct boost::hana::tag_of<boost::hana::Monoid<int>, void>'
../boost/hana/concept/integral_constant.hpp:37:12: required from 'struct boost::hana::IntegralConstant<boost::hana::Monoid<int> >'
../libs/hana/test/issues/github_269.cpp:27:1: required from here
../boost/hana/fwd/zero.hpp:35:12: error: ambiguous template instantiation for 'struct boost::hana::zero_impl<int, boost::hana::when<true> >'
35 | struct zero_impl : zero_impl<M, when<true>> { };
| ^~~~~~~~~
../boost/hana/zero.hpp:43:12: note: candidates are: 'template<class M, bool condition> struct boost::hana::zero_impl<M, boost::hana::when<condition> > [with M = int; bool condition = true]'
43 | struct zero_impl<M, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/zero.hpp:52:12: note: 'template<class T> struct boost::hana::zero_impl<T, boost::hana::when<(std::is_arithmetic<_Tp>::value && (! std::is_same<T, bool>::value))> > [with T = int]'
52 | struct zero_impl<T, when<
| ^~~~~~~~~~~~~~~~~~
53 | std::is_arithmetic<T>::value &&
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
54 | !std::is_same<T, bool>::value
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
55 | >> {
| ~~
../boost/hana/fwd/zero.hpp:35:12: error: invalid use of incomplete type 'struct boost::hana::zero_impl<int, boost::hana::when<true> >'
35 | struct zero_impl : zero_impl<M, when<true>> { };
| ^~~~~~~~~
../boost/hana/fwd/zero.hpp:35:12: note: declaration of 'struct boost::hana::zero_impl<int, boost::hana::when<true> >'
In file included from ../boost/hana/detail/operators/arithmetic.hpp:20:
../boost/hana/fwd/plus.hpp: In instantiation of 'struct boost::hana::plus_impl<int, int, void>':
../boost/hana/core/default.hpp:26:9: required by substitution of 'template<class Method> struct boost::hana::is_default<Method, decltype ((void)(static_cast<boost::hana::default_>((*(Method*)(0)))))> [with Method = boost::hana::plus_impl<int, int, void>]'
../boost/hana/core/tag_of.hpp:24:12: recursively required by substitution of 'template<class T> struct boost::hana::tag_of<T, boost::hana::when<boost::hana::core_detail::is_valid<typename T::hana_tag>::value> > [with T = boost::hana::Monoid<int>]'
../boost/hana/core/tag_of.hpp:24:12: required from 'struct boost::hana::tag_of<boost::hana::Monoid<int>, void>'
../boost/hana/concept/integral_constant.hpp:37:12: required from 'struct boost::hana::IntegralConstant<boost::hana::Monoid<int> >'
../libs/hana/test/issues/github_269.cpp:27:1: required from here
../boost/hana/fwd/plus.hpp:52:12: error: ambiguous template instantiation for 'struct boost::hana::plus_impl<int, int, boost::hana::when<true> >'
52 | struct plus_impl : plus_impl<T, U, when<true>> { };
| ^~~~~~~~~
../boost/hana/plus.hpp:56:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::plus_impl<T, U, boost::hana::when<condition> > [with T = int; U = int; bool condition = true]'
56 | struct plus_impl<T, U, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/plus.hpp:78:12: note: 'template<class T> struct boost::hana::plus_impl<T, T, boost::hana::when<(std::is_arithmetic<_Tp>::value && (! std::is_same<T, bool>::value))> > [with T = int]'
78 | struct plus_impl<T, T, when<
| ^~~~~~~~~~~~~~~~~~~~~
79 | std::is_arithmetic<T>::value &&
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
80 | !std::is_same<T, bool>::value
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
81 | >> {
| ~~
../boost/hana/fwd/plus.hpp:52:12: error: invalid use of incomplete type 'struct boost::hana::plus_impl<int, int, boost::hana::when<true> >'
52 | struct plus_impl : plus_impl<T, U, when<true>> { };
| ^~~~~~~~~
../boost/hana/fwd/plus.hpp:52:12: note: declaration of 'struct boost::hana::plus_impl<int, int, boost::hana::when<true> >'
In file included from ../boost/hana/one.hpp:13,
from ../boost/hana/concept/ring.hpp:20,
from ../boost/hana/concept.hpp:31:
../boost/hana/fwd/one.hpp: In instantiation of 'struct boost::hana::one_impl<int, void>':
../boost/hana/core/default.hpp:26:9: required by substitution of 'template<class Method> struct boost::hana::is_default<Method, decltype ((void)(static_cast<boost::hana::default_>((*(Method*)(0)))))> [with Method = boost::hana::one_impl<int, void>]'
../boost/hana/core/tag_of.hpp:24:12: recursively required by substitution of 'template<class T> struct boost::hana::tag_of<T, boost::hana::when<boost::hana::core_detail::is_valid<typename T::hana_tag>::value> > [with T = boost::hana::Ring<int>]'
../boost/hana/core/tag_of.hpp:24:12: required from 'struct boost::hana::tag_of<boost::hana::Ring<int>, void>'
../boost/hana/concept/integral_constant.hpp:37:12: required from 'struct boost::hana::IntegralConstant<boost::hana::Ring<int> >'
../libs/hana/test/issues/github_269.cpp:30:1: required from here
../boost/hana/fwd/one.hpp:35:12: error: ambiguous template instantiation for 'struct boost::hana::one_impl<int, boost::hana::when<true> >'
35 | struct one_impl : one_impl<R, when<true>> { };
| ^~~~~~~~
../boost/hana/one.hpp:43:12: note: candidates are: 'template<class R, bool condition> struct boost::hana::one_impl<R, boost::hana::when<condition> > [with R = int; bool condition = true]'
43 | struct one_impl<R, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/one.hpp:52:12: note: 'template<class T> struct boost::hana::one_impl<T, boost::hana::when<(std::is_arithmetic<_Tp>::value && (! std::is_same<bool, T>::value))> > [with T = int]'
52 | struct one_impl<T, when<std::is_arithmetic<T>::value &&
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
53 | !std::is_same<bool, T>::value>> {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/fwd/one.hpp:35:12: error: invalid use of incomplete type 'struct boost::hana::one_impl<int, boost::hana::when<true> >'
35 | struct one_impl : one_impl<R, when<true>> { };
| ^~~~~~~~
../boost/hana/fwd/one.hpp:35:12: note: declaration of 'struct boost::hana::one_impl<int, boost::hana::when<true> >'
In file included from ../boost/hana/detail/operators/arithmetic.hpp:18:
../boost/hana/fwd/mult.hpp: In instantiation of 'struct boost::hana::mult_impl<int, int, void>':
../boost/hana/core/default.hpp:26:9: required by substitution of 'template<class Method> struct boost::hana::is_default<Method, decltype ((void)(static_cast<boost::hana::default_>((*(Method*)(0)))))> [with Method = boost::hana::mult_impl<int, int, void>]'
../boost/hana/core/tag_of.hpp:24:12: recursively required by substitution of 'template<class T> struct boost::hana::tag_of<T, boost::hana::when<boost::hana::core_detail::is_valid<typename T::hana_tag>::value> > [with T = boost::hana::Ring<int>]'
../boost/hana/core/tag_of.hpp:24:12: required from 'struct boost::hana::tag_of<boost::hana::Ring<int>, void>'
../boost/hana/concept/integral_constant.hpp:37:12: required from 'struct boost::hana::IntegralConstant<boost::hana::Ring<int> >'
../libs/hana/test/issues/github_269.cpp:30:1: required from here
../boost/hana/fwd/mult.hpp:52:12: error: ambiguous template instantiation for 'struct boost::hana::mult_impl<int, int, boost::hana::when<true> >'
52 | struct mult_impl : mult_impl<T, U, when<true>> { };
| ^~~~~~~~~
In file included from ../boost/hana/concept/ring.hpp:19:
../boost/hana/mult.hpp:56:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::mult_impl<T, U, boost::hana::when<condition> > [with T = int; U = int; bool condition = true]'
56 | struct mult_impl<T, U, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/mult.hpp:78:12: note: 'template<class T> struct boost::hana::mult_impl<T, T, boost::hana::when<(std::is_arithmetic<_Tp>::value && (! std::is_same<bool, T>::value))> > [with T = int]'
78 | struct mult_impl<T, T, when<std::is_arithmetic<T>::value &&
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
79 | !std::is_same<bool, T>::value>> {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/fwd/mult.hpp:52:12: error: invalid use of incomplete type 'struct boost::hana::mult_impl<int, int, boost::hana::when<true> >'
52 | struct mult_impl : mult_impl<T, U, when<true>> { };
| ^~~~~~~~~
../boost/hana/fwd/mult.hpp:52:12: note: declaration of 'struct boost::hana::mult_impl<int, int, boost::hana::when<true> >'