Compile [2024-11-16 12:16:25 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~numeric~minus_mcd.test/gcc-12~c++17/debug/x86_64/debug-symbols-off/threading-multi/visibility-hidden/numeric/minus_mcd.o" "../libs/hana/test/numeric/minus_mcd.cpp"
In file included from ../boost/hana/detail/operators/comparable.hpp:15,
from ../boost/hana/pair.hpp:20,
from ../boost/hana/unpack.hpp:26,
from ../boost/hana/fold_left.hpp:20,
from ../boost/hana/concept/foldable.hpp:19,
from ../boost/hana/core/to.hpp:16,
from ../boost/hana/bool.hpp:17,
from ../boost/hana/eval_if.hpp:15,
from ../boost/hana/concept/logical.hpp:19,
from ../boost/hana/and.hpp:15,
from ../libs/hana/test/numeric/main.hpp:5,
from ../libs/hana/test/numeric/minus_mcd.cpp:6:
../boost/hana/fwd/equal.hpp: In instantiation of 'struct boost::hana::equal_impl<boost::hana::tuple_tag, boost::hana::tuple_tag, void>':
../boost/hana/equal.hpp:50:28: required from 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::tuple<numeric_type>&; Y = boost::hana::tuple<numeric_type>&]'
../libs/hana/test/_include/laws/base.hpp:163:28: required from 'static constexpr auto boost::hana::equal_impl<boost::hana::test::InjectionResult, boost::hana::test::InjectionResult>::apply(X, Y) [with X = boost::hana::test::injection_result<0, numeric_type>; Y = boost::hana::test::injection_result<0, numeric_type>]'
../boost/hana/equal.hpp:50:28: required from 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::test::injection_result<0, numeric_type>; Y = boost::hana::test::injection_result<0, numeric_type>]'
../boost/hana/comparing.hpp:28:33: required from 'constexpr auto boost::hana::detail::equal_by<F>::operator()(X&&, Y&&) const & [with X = numeric_type&; Y = numeric_type&; F = boost::hana::test::_injection<0>]'
../libs/hana/test/numeric/main.hpp:76:13: required from here
../boost/hana/fwd/equal.hpp:69:12: error: ambiguous template instantiation for 'struct boost::hana::equal_impl<boost::hana::tuple_tag, boost::hana::tuple_tag, boost::hana::when<true> >'
69 | struct equal_impl : equal_impl<T, U, when<true>> { };
| ^~~~~~~~~~
In file included from ../boost/hana/comparing.hpp:17,
from ../libs/hana/test/numeric/main.hpp:7:
../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::tuple_tag; U = boost::hana::tuple_tag; bool condition = true]'
55 | struct equal_impl<T, U, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/equal.hpp:168:12: note: 'template<class T, class U> struct boost::hana::equal_impl<T, U, boost::hana::when<(boost::hana::Sequence<S>::value && boost::hana::Sequence<Tag>::value)> > [with T = boost::hana::tuple_tag; U = boost::hana::tuple_tag]'
168 | struct equal_impl<T, U, when<Sequence<T>::value && hana::Sequence<U>::value>> {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/fwd/equal.hpp:69:12: error: invalid use of incomplete type 'struct boost::hana::equal_impl<boost::hana::tuple_tag, boost::hana::tuple_tag, 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::tuple_tag, boost::hana::tuple_tag, 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::tuple<numeric_type>&; Y = boost::hana::tuple<numeric_type>&]':
../libs/hana/test/_include/laws/base.hpp:163:28: required from 'static constexpr auto boost::hana::equal_impl<boost::hana::test::InjectionResult, boost::hana::test::InjectionResult>::apply(X, Y) [with X = boost::hana::test::injection_result<0, numeric_type>; Y = boost::hana::test::injection_result<0, numeric_type>]'
../boost/hana/equal.hpp:50:28: required from 'constexpr auto boost::hana::equal_t::operator()(X&&, Y&&) const [with X = boost::hana::test::injection_result<0, numeric_type>; Y = boost::hana::test::injection_result<0, numeric_type>]'
../boost/hana/comparing.hpp:28:33: required from 'constexpr auto boost::hana::detail::equal_by<F>::operator()(X&&, Y&&) const & [with X = numeric_type&; Y = numeric_type&; F = boost::hana::test::_injection<0>]'
../libs/hana/test/numeric/main.hpp:76:13: required from here
../boost/hana/equal.hpp:50:28: error: 'apply' is not a member of 'Equal' {aka 'boost::hana::equal_impl<boost::hana::tuple_tag, boost::hana::tuple_tag, void>'}
50 | return Equal::apply(static_cast<X&&>(x), static_cast<Y&&>(y));
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../libs/hana/test/numeric/main.hpp:6:
../libs/hana/test/numeric/main.hpp: In function 'int main()':
../boost/hana/assert.hpp:192:68: error: template argument 1 is invalid
192 | static_assert(!::boost::hana::Constant<decltype(__hana_tmp)>::value,\
| ^
../boost/hana/assert.hpp:315:9: note: in expansion of macro 'BOOST_HANA_RUNTIME_CHECK_MSG'
315 | BOOST_HANA_RUNTIME_CHECK_MSG(condition, message) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/assert.hpp:319:9: note: in expansion of macro 'BOOST_HANA_CONSTEXPR_CHECK_MSG'
319 | BOOST_HANA_CONSTEXPR_CHECK_MSG( \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/numeric/main.hpp:76:13: note: in expansion of macro 'BOOST_HANA_CONSTEXPR_CHECK'
76 | BOOST_HANA_CONSTEXPR_CHECK(hana::equal(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/assert.hpp:192:68: error: template argument 1 is invalid
192 | static_assert(!::boost::hana::Constant<decltype(__hana_tmp)>::value,\
| ^
../boost/hana/assert.hpp:315:9: note: in expansion of macro 'BOOST_HANA_RUNTIME_CHECK_MSG'
315 | BOOST_HANA_RUNTIME_CHECK_MSG(condition, message) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/assert.hpp:319:9: note: in expansion of macro 'BOOST_HANA_CONSTEXPR_CHECK_MSG'
319 | BOOST_HANA_CONSTEXPR_CHECK_MSG( \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/numeric/main.hpp:81:13: note: in expansion of macro 'BOOST_HANA_CONSTEXPR_CHECK'
81 | BOOST_HANA_CONSTEXPR_CHECK(hana::equal(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../boost/hana/detail/operators/orderable.hpp:17,
from ../boost/hana/pair.hpp:21:
../boost/hana/fwd/less.hpp: In instantiation of 'struct boost::hana::less_impl<boost::hana::tuple_tag, boost::hana::tuple_tag, 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::less_impl<boost::hana::tuple_tag, boost::hana::tuple_tag, void>]'
../boost/hana/concept/orderable.hpp:27:65: required from 'struct boost::hana::Orderable<boost::hana::tuple_tag>'
../boost/hana/less.hpp:44:22: required from 'constexpr auto boost::hana::less_t::operator()(X&&, Y&&) const [with X = boost::hana::tuple<numeric_type>&; Y = boost::hana::tuple<numeric_type>&]'
../libs/hana/test/_include/laws/base.hpp:174:30: required from 'static constexpr auto boost::hana::less_impl<boost::hana::test::InjectionResult, boost::hana::test::InjectionResult>::apply(X, Y) [with X = boost::hana::test::injection_result<0, numeric_type>; Y = boost::hana::test::injection_result<0, numeric_type>]'
../boost/hana/less.hpp:62:27: required from 'constexpr auto boost::hana::less_t::operator()(X&&, Y&&) const [with X = boost::hana::test::injection_result<0, numeric_type>; Y = boost::hana::test::injection_result<0, numeric_type>]'
../boost/hana/ordering.hpp:28:32: required from 'constexpr decltype(auto) boost::hana::detail::less_by<F>::operator()(X&&, Y&&) const & [with X = numeric_type; Y = numeric_type; F = boost::hana::test::_injection<0>]'
../libs/hana/test/numeric/main.hpp:156:13: required from here
../boost/hana/fwd/less.hpp:42:12: error: ambiguous template instantiation for 'struct boost::hana::less_impl<boost::hana::tuple_tag, boost::hana::tuple_tag, boost::hana::when<true> >'
42 | struct less_impl : less_impl<T, U, when<true>> { };
| ^~~~~~~~~
In file included from ../boost/hana/concept/orderable.hpp:19,
from ../boost/hana/greater.hpp:15,
from ../libs/hana/test/numeric/main.hpp:11:
../boost/hana/less.hpp:67:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::less_impl<T, U, boost::hana::when<condition> > [with T = boost::hana::tuple_tag; U = boost::hana::tuple_tag; bool condition = true]'
67 | struct less_impl<T, U, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/less.hpp:133:12: note: 'template<class T, class U> struct boost::hana::less_impl<T, U, boost::hana::when<(boost::hana::Sequence<S>::value && boost::hana::Sequence<Tag>::value)> > [with T = boost::hana::tuple_tag; U = boost::hana::tuple_tag]'
133 | struct less_impl<T, U, when<
| ^~~~~~~~~~~~~~~~~~~~~
134 | hana::Sequence<T>::value && hana::Sequence<U>::value
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
135 | >> {
| ~~
../boost/hana/fwd/less.hpp:42:12: error: invalid use of incomplete type 'struct boost::hana::less_impl<boost::hana::tuple_tag, boost::hana::tuple_tag, boost::hana::when<true> >'
42 | struct less_impl : less_impl<T, U, when<true>> { };
| ^~~~~~~~~
../boost/hana/fwd/less.hpp:42:12: note: declaration of 'struct boost::hana::less_impl<boost::hana::tuple_tag, boost::hana::tuple_tag, boost::hana::when<true> >'
../boost/hana/less.hpp: In instantiation of 'constexpr auto boost::hana::less_t::operator()(X&&, Y&&) const [with X = boost::hana::tuple<numeric_type>&; Y = boost::hana::tuple<numeric_type>&]':
../libs/hana/test/_include/laws/base.hpp:174:30: required from 'static constexpr auto boost::hana::less_impl<boost::hana::test::InjectionResult, boost::hana::test::InjectionResult>::apply(X, Y) [with X = boost::hana::test::injection_result<0, numeric_type>; Y = boost::hana::test::injection_result<0, numeric_type>]'
../boost/hana/less.hpp:62:27: required from 'constexpr auto boost::hana::less_t::operator()(X&&, Y&&) const [with X = boost::hana::test::injection_result<0, numeric_type>; Y = boost::hana::test::injection_result<0, numeric_type>]'
../boost/hana/ordering.hpp:28:32: required from 'constexpr decltype(auto) boost::hana::detail::less_by<F>::operator()(X&&, Y&&) const & [with X = numeric_type; Y = numeric_type; F = boost::hana::test::_injection<0>]'
../libs/hana/test/numeric/main.hpp:156:13: required from here
../boost/hana/less.hpp:62:27: error: 'apply' is not a member of 'Less' {aka 'boost::hana::less_impl<boost::hana::tuple_tag, boost::hana::tuple_tag, void>'}
62 | return Less::apply(static_cast<X&&>(x), static_cast<Y&&>(y));
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/assert.hpp:192:68: error: template argument 1 is invalid
192 | static_assert(!::boost::hana::Constant<decltype(__hana_tmp)>::value,\
| ^
../boost/hana/assert.hpp:315:9: note: in expansion of macro 'BOOST_HANA_RUNTIME_CHECK_MSG'
315 | BOOST_HANA_RUNTIME_CHECK_MSG(condition, message) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/assert.hpp:319:9: note: in expansion of macro 'BOOST_HANA_CONSTEXPR_CHECK_MSG'
319 | BOOST_HANA_CONSTEXPR_CHECK_MSG( \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/numeric/main.hpp:156:13: note: in expansion of macro 'BOOST_HANA_CONSTEXPR_CHECK'
156 | BOOST_HANA_CONSTEXPR_CHECK(hana::equal(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/assert.hpp:192:68: error: template argument 1 is invalid
192 | static_assert(!::boost::hana::Constant<decltype(__hana_tmp)>::value,\
| ^
../boost/hana/assert.hpp:315:9: note: in expansion of macro 'BOOST_HANA_RUNTIME_CHECK_MSG'
315 | BOOST_HANA_RUNTIME_CHECK_MSG(condition, message) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/assert.hpp:319:9: note: in expansion of macro 'BOOST_HANA_CONSTEXPR_CHECK_MSG'
319 | BOOST_HANA_CONSTEXPR_CHECK_MSG( \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/numeric/main.hpp:161:13: note: in expansion of macro 'BOOST_HANA_CONSTEXPR_CHECK'
161 | BOOST_HANA_CONSTEXPR_CHECK(hana::equal(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/assert.hpp:192:68: error: template argument 1 is invalid
192 | static_assert(!::boost::hana::Constant<decltype(__hana_tmp)>::value,\
| ^
../boost/hana/assert.hpp:315:9: note: in expansion of macro 'BOOST_HANA_RUNTIME_CHECK_MSG'
315 | BOOST_HANA_RUNTIME_CHECK_MSG(condition, message) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/assert.hpp:319:9: note: in expansion of macro 'BOOST_HANA_CONSTEXPR_CHECK_MSG'
319 | BOOST_HANA_CONSTEXPR_CHECK_MSG( \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/numeric/main.hpp:166:13: note: in expansion of macro 'BOOST_HANA_CONSTEXPR_CHECK'
166 | BOOST_HANA_CONSTEXPR_CHECK(hana::equal(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../boost/hana/zero.hpp:13,
from ../boost/hana/negate.hpp:19,
from ../boost/hana/concept/group.hpp:20,
from ../boost/hana/minus.hpp:16,
from ../libs/hana/test/numeric/main.hpp:18:
../boost/hana/fwd/zero.hpp: In instantiation of 'struct boost::hana::zero_impl<int, void>':
../boost/hana/core/default.hpp:26:9: required by substitution of 'template<class Method> struct boost::hana::is_default<Method, decltype ((void)(static_cast<boost::hana::default_>((*(Method*)(0)))))> [with Method = boost::hana::zero_impl<int, void>]'
../boost/hana/concept/monoid.hpp:27:63: required from 'struct boost::hana::Monoid<int>'
../boost/hana/plus.hpp:101:41: required by substitution of 'template<class C> struct boost::hana::zero_impl<C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Monoid<typename C::value_type>::value)> > [with C = CNumeric<int>]'
../boost/hana/fwd/zero.hpp:35:12: required from 'struct boost::hana::zero_impl<CNumeric<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<CNumeric<int>, void>]'
../boost/hana/concept/monoid.hpp:27:63: required from 'struct boost::hana::Monoid<CNumeric<int> >'
../boost/hana/zero.hpp:30:40: required from 'constexpr decltype(auto) boost::hana::zero_t<M>::operator()() const [with M = CNumeric<int>]'
../libs/hana/test/numeric/main.hpp:242:13: 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,
from ../boost/hana/bool.hpp:19:
../boost/hana/fwd/plus.hpp: In instantiation of 'struct boost::hana::plus_impl<int, int, void>':
../boost/hana/core/default.hpp:26:9: required by substitution of 'template<class Method> struct boost::hana::is_default<Method, decltype ((void)(static_cast<boost::hana::default_>((*(Method*)(0)))))> [with Method = boost::hana::plus_impl<int, int, void>]'
../boost/hana/concept/monoid.hpp:29:63: required from 'struct boost::hana::Monoid<int>'
../boost/hana/plus.hpp:101:41: required by substitution of 'template<class C> struct boost::hana::zero_impl<C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Monoid<typename C::value_type>::value)> > [with C = CNumeric<int>]'
../boost/hana/fwd/zero.hpp:35:12: required from 'struct boost::hana::zero_impl<CNumeric<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<CNumeric<int>, void>]'
../boost/hana/concept/monoid.hpp:27:63: required from 'struct boost::hana::Monoid<CNumeric<int> >'
../boost/hana/zero.hpp:30:40: required from 'constexpr decltype(auto) boost::hana::zero_t<M>::operator()() const [with M = CNumeric<int>]'
../libs/hana/test/numeric/main.hpp:242:13: required from here
../boost/hana/fwd/plus.hpp:52:12: error: ambiguous template instantiation for 'struct boost::hana::plus_impl<int, int, boost::hana::when<true> >'
52 | struct plus_impl : plus_impl<T, U, when<true>> { };
| ^~~~~~~~~
In file included from ../boost/hana/concept/monoid.hpp:19,
from ../boost/hana/zero.hpp:16:
../boost/hana/plus.hpp:56:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::plus_impl<T, U, boost::hana::when<condition> > [with T = int; U = int; bool condition = true]'
56 | struct plus_impl<T, U, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/plus.hpp:78:12: note: 'template<class T> struct boost::hana::plus_impl<T, T, boost::hana::when<(std::is_arithmetic<_Tp>::value && (! std::is_same<T, bool>::value))> > [with T = int]'
78 | struct plus_impl<T, T, when<
| ^~~~~~~~~~~~~~~~~~~~~
79 | std::is_arithmetic<T>::value &&
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
80 | !std::is_same<T, bool>::value
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
81 | >> {
| ~~
../boost/hana/fwd/plus.hpp:52:12: error: invalid use of incomplete type 'struct boost::hana::plus_impl<int, int, boost::hana::when<true> >'
52 | struct plus_impl : plus_impl<T, U, when<true>> { };
| ^~~~~~~~~
../boost/hana/fwd/plus.hpp:52:12: note: declaration of 'struct boost::hana::plus_impl<int, int, boost::hana::when<true> >'
../boost/hana/fwd/zero.hpp: In instantiation of 'struct boost::hana::zero_impl<CNumeric<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<CNumeric<int>, void>]'
../boost/hana/concept/monoid.hpp:27:63: required from 'struct boost::hana::Monoid<CNumeric<int> >'
../boost/hana/zero.hpp:30:40: required from 'constexpr decltype(auto) boost::hana::zero_t<M>::operator()() const [with M = CNumeric<int>]'
../libs/hana/test/numeric/main.hpp:242:13: required from here
../boost/hana/fwd/zero.hpp:35:12: error: ambiguous template instantiation for 'struct boost::hana::zero_impl<CNumeric<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 = CNumeric<int>; bool condition = true]'
43 | struct zero_impl<M, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/zero.hpp:72:12: note: 'template<class C> struct boost::hana::zero_impl<C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Monoid<typename C::value_type>::value)> > [with C = CNumeric<int>]'
72 | struct zero_impl<C, when<
| ^~~~~~~~~~~~~~~~~~
73 | hana::Constant<C>::value &&
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
74 | Monoid<typename C::value_type>::value
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
75 | >> {
| ~~
../boost/hana/fwd/zero.hpp:35:12: error: invalid use of incomplete type 'struct boost::hana::zero_impl<CNumeric<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<CNumeric<int>, boost::hana::when<true> >'
../boost/hana/fwd/plus.hpp: In instantiation of 'struct boost::hana::plus_impl<CNumeric<int>, CNumeric<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<CNumeric<int>, CNumeric<int>, void>]'
../boost/hana/concept/monoid.hpp:29:63: required from 'struct boost::hana::Monoid<CNumeric<int> >'
../boost/hana/zero.hpp:30:40: required from 'constexpr decltype(auto) boost::hana::zero_t<M>::operator()() const [with M = CNumeric<int>]'
../libs/hana/test/numeric/main.hpp:242:13: required from here
../boost/hana/fwd/plus.hpp:52:12: error: ambiguous template instantiation for 'struct boost::hana::plus_impl<CNumeric<int>, CNumeric<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 = CNumeric<int>; U = CNumeric<int>; bool condition = true]'
56 | struct plus_impl<T, U, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/plus.hpp:99:12: note: 'template<class C> struct boost::hana::plus_impl<C, C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Monoid<typename C::value_type>::value)> > [with C = CNumeric<int>]'
99 | struct plus_impl<C, C, when<
| ^~~~~~~~~~~~~~~~~~~~~
100 | hana::Constant<C>::value &&
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
101 | Monoid<typename C::value_type>::value
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
102 | >> {
| ~~
../boost/hana/fwd/plus.hpp:52:12: error: invalid use of incomplete type 'struct boost::hana::plus_impl<CNumeric<int>, CNumeric<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<CNumeric<int>, CNumeric<int>, boost::hana::when<true> >'
../boost/hana/zero.hpp: In instantiation of 'constexpr decltype(auto) boost::hana::zero_t<M>::operator()() const [with M = CNumeric<int>]':
../libs/hana/test/numeric/main.hpp:242:13: required from here
../boost/hana/zero.hpp:38:27: error: 'apply' is not a member of 'Zero' {aka 'boost::hana::zero_impl<CNumeric<int>, void>'}
38 | return Zero::apply();
| ~~~~~~~~~~~^~
../boost/hana/assert.hpp:192:68: error: template argument 1 is invalid
192 | static_assert(!::boost::hana::Constant<decltype(__hana_tmp)>::value,\
| ^
../boost/hana/assert.hpp:315:9: note: in expansion of macro 'BOOST_HANA_RUNTIME_CHECK_MSG'
315 | BOOST_HANA_RUNTIME_CHECK_MSG(condition, message) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/assert.hpp:319:9: note: in expansion of macro 'BOOST_HANA_CONSTEXPR_CHECK_MSG'
319 | BOOST_HANA_CONSTEXPR_CHECK_MSG( \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/numeric/main.hpp:242:13: note: in expansion of macro 'BOOST_HANA_CONSTEXPR_CHECK'
242 | BOOST_HANA_CONSTEXPR_CHECK(hana::equal(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../boost/hana/one.hpp:13,
from ../boost/hana/concept/ring.hpp:20,
from ../boost/hana/mult.hpp:16,
from ../libs/hana/test/numeric/main.hpp:20:
../boost/hana/fwd/one.hpp: In instantiation of 'struct boost::hana::one_impl<int, void>':
../boost/hana/core/default.hpp:26:9: required by substitution of 'template<class Method> struct boost::hana::is_default<Method, decltype ((void)(static_cast<boost::hana::default_>((*(Method*)(0)))))> [with Method = boost::hana::one_impl<int, void>]'
../boost/hana/concept/ring.hpp:27:62: required from 'struct boost::hana::Ring<int>'
../boost/hana/one.hpp:72:39: required by substitution of 'template<class C> struct boost::hana::one_impl<C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Ring<typename C::value_type>::value)> > [with C = CNumeric<int>]'
../boost/hana/fwd/one.hpp:35:12: required from 'struct boost::hana::one_impl<CNumeric<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<CNumeric<int>, void>]'
../boost/hana/concept/ring.hpp:27:62: required from 'struct boost::hana::Ring<CNumeric<int> >'
../boost/hana/one.hpp:30:38: required from 'constexpr decltype(auto) boost::hana::one_t<R>::operator()() const [with R = CNumeric<int>]'
../libs/hana/test/numeric/main.hpp:247:13: required from here
../boost/hana/fwd/one.hpp:35:12: error: ambiguous template instantiation for 'struct boost::hana::one_impl<int, boost::hana::when<true> >'
35 | struct one_impl : one_impl<R, when<true>> { };
| ^~~~~~~~
../boost/hana/one.hpp:43:12: note: candidates are: 'template<class R, bool condition> struct boost::hana::one_impl<R, boost::hana::when<condition> > [with R = int; bool condition = true]'
43 | struct one_impl<R, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/one.hpp:52:12: note: 'template<class T> struct boost::hana::one_impl<T, boost::hana::when<(std::is_arithmetic<_Tp>::value && (! std::is_same<bool, T>::value))> > [with T = int]'
52 | struct one_impl<T, when<std::is_arithmetic<T>::value &&
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
53 | !std::is_same<bool, T>::value>> {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/fwd/one.hpp:35:12: error: invalid use of incomplete type 'struct boost::hana::one_impl<int, boost::hana::when<true> >'
35 | struct one_impl : one_impl<R, when<true>> { };
| ^~~~~~~~
../boost/hana/fwd/one.hpp:35:12: note: declaration of 'struct boost::hana::one_impl<int, boost::hana::when<true> >'
In file included from ../boost/hana/detail/operators/arithmetic.hpp:18:
../boost/hana/fwd/mult.hpp: In instantiation of 'struct boost::hana::mult_impl<int, int, void>':
../boost/hana/core/default.hpp:26:9: required by substitution of 'template<class Method> struct boost::hana::is_default<Method, decltype ((void)(static_cast<boost::hana::default_>((*(Method*)(0)))))> [with Method = boost::hana::mult_impl<int, int, void>]'
../boost/hana/concept/ring.hpp:29:63: required from 'struct boost::hana::Ring<int>'
../boost/hana/one.hpp:72:39: required by substitution of 'template<class C> struct boost::hana::one_impl<C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Ring<typename C::value_type>::value)> > [with C = CNumeric<int>]'
../boost/hana/fwd/one.hpp:35:12: required from 'struct boost::hana::one_impl<CNumeric<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<CNumeric<int>, void>]'
../boost/hana/concept/ring.hpp:27:62: required from 'struct boost::hana::Ring<CNumeric<int> >'
../boost/hana/one.hpp:30:38: required from 'constexpr decltype(auto) boost::hana::one_t<R>::operator()() const [with R = CNumeric<int>]'
../libs/hana/test/numeric/main.hpp:247:13: required from here
../boost/hana/fwd/mult.hpp:52:12: error: ambiguous template instantiation for 'struct boost::hana::mult_impl<int, int, boost::hana::when<true> >'
52 | struct mult_impl : mult_impl<T, U, when<true>> { };
| ^~~~~~~~~
../boost/hana/mult.hpp:56:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::mult_impl<T, U, boost::hana::when<condition> > [with T = int; U = int; bool condition = true]'
56 | struct mult_impl<T, U, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/mult.hpp:78:12: note: 'template<class T> struct boost::hana::mult_impl<T, T, boost::hana::when<(std::is_arithmetic<_Tp>::value && (! std::is_same<bool, T>::value))> > [with T = int]'
78 | struct mult_impl<T, T, when<std::is_arithmetic<T>::value &&
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
79 | !std::is_same<bool, T>::value>> {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/fwd/mult.hpp:52:12: error: invalid use of incomplete type 'struct boost::hana::mult_impl<int, int, boost::hana::when<true> >'
52 | struct mult_impl : mult_impl<T, U, when<true>> { };
| ^~~~~~~~~
../boost/hana/fwd/mult.hpp:52:12: note: declaration of 'struct boost::hana::mult_impl<int, int, boost::hana::when<true> >'
../boost/hana/fwd/one.hpp: In instantiation of 'struct boost::hana::one_impl<CNumeric<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<CNumeric<int>, void>]'
../boost/hana/concept/ring.hpp:27:62: required from 'struct boost::hana::Ring<CNumeric<int> >'
../boost/hana/one.hpp:30:38: required from 'constexpr decltype(auto) boost::hana::one_t<R>::operator()() const [with R = CNumeric<int>]'
../libs/hana/test/numeric/main.hpp:247:13: required from here
../boost/hana/fwd/one.hpp:35:12: error: ambiguous template instantiation for 'struct boost::hana::one_impl<CNumeric<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 = CNumeric<int>; bool condition = true]'
43 | struct one_impl<R, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/one.hpp:70:12: note: 'template<class C> struct boost::hana::one_impl<C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Ring<typename C::value_type>::value)> > [with C = CNumeric<int>]'
70 | struct one_impl<C, when<
| ^~~~~~~~~~~~~~~~~
71 | hana::Constant<C>::value &&
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
72 | Ring<typename C::value_type>::value
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
73 | >> {
| ~~
../boost/hana/fwd/one.hpp:35:12: error: invalid use of incomplete type 'struct boost::hana::one_impl<CNumeric<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<CNumeric<int>, boost::hana::when<true> >'
../boost/hana/fwd/mult.hpp: In instantiation of 'struct boost::hana::mult_impl<CNumeric<int>, CNumeric<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<CNumeric<int>, CNumeric<int>, void>]'
../boost/hana/concept/ring.hpp:29:63: required from 'struct boost::hana::Ring<CNumeric<int> >'
../boost/hana/one.hpp:30:38: required from 'constexpr decltype(auto) boost::hana::one_t<R>::operator()() const [with R = CNumeric<int>]'
../libs/hana/test/numeric/main.hpp:247:13: required from here
../boost/hana/fwd/mult.hpp:52:12: error: ambiguous template instantiation for 'struct boost::hana::mult_impl<CNumeric<int>, CNumeric<int>, boost::hana::when<true> >'
52 | struct mult_impl : mult_impl<T, U, when<true>> { };
| ^~~~~~~~~
../boost/hana/mult.hpp:56:12: note: candidates are: 'template<class T, class U, bool condition> struct boost::hana::mult_impl<T, U, boost::hana::when<condition> > [with T = CNumeric<int>; U = CNumeric<int>; bool condition = true]'
56 | struct mult_impl<T, U, when<condition>> : default_ {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/mult.hpp:97:12: note: 'template<class C> struct boost::hana::mult_impl<C, C, boost::hana::when<(boost::hana::Constant<C>::value && boost::hana::Ring<typename C::value_type>::value)> > [with C = CNumeric<int>]'
97 | struct mult_impl<C, C, when<
| ^~~~~~~~~~~~~~~~~~~~~
98 | hana::Constant<C>::value &&
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
99 | Ring<typename C::value_type>::value
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
100 | >> {
| ~~
../boost/hana/fwd/mult.hpp:52:12: error: invalid use of incomplete type 'struct boost::hana::mult_impl<CNumeric<int>, CNumeric<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<CNumeric<int>, CNumeric<int>, boost::hana::when<true> >'
../boost/hana/one.hpp: In instantiation of 'constexpr decltype(auto) boost::hana::one_t<R>::operator()() const [with R = CNumeric<int>]':
../libs/hana/test/numeric/main.hpp:247:13: required from here
../boost/hana/one.hpp:38:26: error: 'apply' is not a member of 'One' {aka 'boost::hana::one_impl<CNumeric<int>, void>'}
38 | return One::apply();
| ~~~~~~~~~~^~
../boost/hana/assert.hpp:192:68: error: template argument 1 is invalid
192 | static_assert(!::boost::hana::Constant<decltype(__hana_tmp)>::value,\
| ^
../boost/hana/assert.hpp:315:9: note: in expansion of macro 'BOOST_HANA_RUNTIME_CHECK_MSG'
315 | BOOST_HANA_RUNTIME_CHECK_MSG(condition, message) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/hana/assert.hpp:319:9: note: in expansion of macro 'BOOST_HANA_CONSTEXPR_CHECK_MSG'
319 | BOOST_HANA_CONSTEXPR_CHECK_MSG( \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libs/hana/test/numeric/main.hpp:247:13: note: in expansion of macro 'BOOST_HANA_CONSTEXPR_CHECK'
247 | BOOST_HANA_CONSTEXPR_CHECK(hana::equal(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~