Compile [2024-11-21 00:06:20 UTC]: fail
"g++-11" -fvisibility-inlines-hidden -std=c++20 -fPIC -pthread -O0 -fno-inline -Wall -fvisibility=hidden -DBOOST_ALL_NO_LIB=1 -DBOOST_COBALT_USE_STD_PMR=1 -I".." -c -o "/mnt/fs1/teeks99-06/run/results/boost/bin.v2/libs/yap/test/user_expression_transform_1.test/gcc-11~c++20/debug/arm_64/debug-symbols-off/threading-multi/visibility-hidden/user_expression_transform_1.o" "../libs/yap/test/user_expression_transform_1.cpp"
In file included from ../boost/yap/algorithm.hpp:11,
from ../boost/yap/expression.hpp:9,
from ../libs/yap/test/user_expression_transform_1.cpp:6:
../boost/yap/detail/algorithm.hpp: In instantiation of ???constexpr auto boost::yap::detail::make_operand<T>::operator()(U&&) [with U = boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >; T = boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >]???:
../boost/yap/algorithm.hpp:496:76: required from ???constexpr auto boost::yap::make_expression(T&& ...) [with ExprTemplate = boost::yap::expression; boost::yap::expr_kind Kind = boost::yap::expr_kind::minus; T = {boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >}]???
../boost/yap/expression.hpp:319:49: required from ???constexpr auto boost::yap::make_expression(T&& ...) [with boost::yap::expr_kind Kind = boost::yap::expr_kind::minus; T = {boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >}]???
../libs/yap/test/user_expression_transform_1.cpp:102:63: required from here
../boost/yap/detail/algorithm.hpp:231:42: note: parameter passing for argument of type ???boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >??? when C++17 is enabled changed to match C++14 in GCC 10.1
231 | return T{static_cast<U &&>(u)};
| ^
In file included from ../boost/yap/expression.hpp:9,
from ../libs/yap/test/user_expression_transform_1.cpp:6:
../boost/yap/algorithm.hpp: In instantiation of ???constexpr auto boost::yap::make_expression(T&& ...) [with ExprTemplate = boost::yap::expression; boost::yap::expr_kind Kind = boost::yap::expr_kind::minus; T = {boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >}]???:
../boost/yap/expression.hpp:319:49: required from ???constexpr auto boost::yap::make_expression(T&& ...) [with boost::yap::expr_kind Kind = boost::yap::expr_kind::minus; T = {boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >}]???
../libs/yap/test/user_expression_transform_1.cpp:102:63: required from here
../boost/yap/algorithm.hpp:497:42: note: parameter passing for argument of type ???boost::yap::expression<boost::yap::expr_kind::minus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >??? when C++17 is enabled changed to match C++14 in GCC 10.1
497 | static_cast<T &&>(t))...}};
| ^
../boost/yap/algorithm.hpp: In instantiation of ???constexpr auto boost::yap::make_terminal(T&&) [with ExprTemplate = boost::yap::expression; T = user::number]???:
../boost/yap/expression.hpp:326:41: required from ???constexpr auto boost::yap::make_terminal(T&&) [with T = user::number]???
../libs/yap/test/user_expression_transform_1.cpp:146:38: required from here
../boost/yap/algorithm.hpp:514:60: note: parameter passing for argument of type ???boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >??? when C++17 is enabled changed to match C++14 in GCC 10.1
514 | return result_type{tuple_type{static_cast<T &&>(t)}};
| ^
../libs/yap/test/user_expression_transform_1.cpp: In member function ???auto user::term_nonterm_xform_tag::operator()(boost::yap::expr_tag<boost::yap::expr_kind::plus>, const user::number&, const user::number&)???:
../libs/yap/test/user_expression_transform_1.cpp:156:72: note: parameter passing for argument of type ???boost::yap::expression<boost::yap::expr_kind::minus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >??? when C++17 is enabled changed to match C++14 in GCC 10.1
156 | yap::transform(::boost::yap::make_terminal(rhs), *this));
| ^
../libs/yap/test/user_expression_transform_1.cpp: In member function ???decltype(auto) user::term_nonterm_xform_expr::operator()(term<user::number>&)???:
../libs/yap/test/user_expression_transform_1.cpp:165:62: note: parameter passing for argument of type ???boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >??? when C++17 is enabled changed to match C++14 in GCC 10.1
165 | ::boost::yap::value(expr) * user::number{2.0});
| ^
../libs/yap/test/user_expression_transform_1.cpp: In member function ???decltype(auto) user::term_nonterm_xform_both::operator()(boost::yap::expr_tag<boost::yap::expr_kind::plus>, const user::number&, const user::number&)???:
../libs/yap/test/user_expression_transform_1.cpp:200:72: note: parameter passing for argument of type ???boost::yap::expression<boost::yap::expr_kind::minus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >??? when C++17 is enabled changed to match C++14 in GCC 10.1
200 | yap::transform(::boost::yap::make_terminal(rhs), *this));
| ^
../libs/yap/test/user_expression_transform_1.cpp: In function ???decltype(auto) user::naxpy_eager_nontemplate_xform(const boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::multiplies, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >&)???:
../libs/yap/test/user_expression_transform_1.cpp:297:49: note: parameter passing for argument of type ???boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >??? when C++17 is enabled changed to match C++14 in GCC 10.1
297 | return yap::make_terminal(naxpy(a, x, y));
| ^
../libs/yap/test/user_expression_transform_1.cpp: In function ???auto double_to_float(term<double>)???:
../libs/yap/test/user_expression_transform_1.cpp:447:43: note: parameter passing for argument of type ???boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<float> >??? when C++17 is enabled changed to match C++14 in GCC 10.1
447 | return term<float>{(float)expr.value()};
| ^
../libs/yap/test/user_expression_transform_1.cpp: In function ???int main()???:
../libs/yap/test/user_expression_transform_1.cpp:460:35: error: call of overloaded ???expression(<brace-enclosed initializer list>)??? is ambiguous
460 | term<user::number> a{{1.0}};
| ^
In file included from ../libs/yap/test/user_expression_transform_1.cpp:6:
../boost/yap/expression.hpp:142:19: note: candidate: ???constexpr boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<T> >::expression(boost::hana::tuple<T>&&) [with T = user::number]???
142 | constexpr expression(hana::tuple<T> && rhs) : elements(std::move(rhs))
| ^~~~~~~~~~
../boost/yap/expression.hpp:139:19: note: candidate: ???constexpr boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<T> >::expression(const boost::hana::tuple<T>&) [with T = user::number]???
139 | constexpr expression(hana::tuple<T> const & rhs) : elements(rhs) {}
| ^~~~~~~~~~
../boost/yap/expression.hpp:136:19: note: candidate: ???constexpr boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<T> >::expression(T&&) [with T = user::number]???
136 | constexpr expression(T && t) : elements(static_cast<T &&>(t)) {}
| ^~~~~~~~~~
../libs/yap/test/user_expression_transform_1.cpp:461:36: error: call of overloaded ???expression(<brace-enclosed initializer list>)??? is ambiguous
461 | term<user::number> x{{42.0}};
| ^
In file included from ../libs/yap/test/user_expression_transform_1.cpp:6:
../boost/yap/expression.hpp:142:19: note: candidate: ???constexpr boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<T> >::expression(boost::hana::tuple<T>&&) [with T = user::number]???
142 | constexpr expression(hana::tuple<T> && rhs) : elements(std::move(rhs))
| ^~~~~~~~~~
../boost/yap/expression.hpp:139:19: note: candidate: ???constexpr boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<T> >::expression(const boost::hana::tuple<T>&) [with T = user::number]???
139 | constexpr expression(hana::tuple<T> const & rhs) : elements(rhs) {}
| ^~~~~~~~~~
../boost/yap/expression.hpp:136:19: note: candidate: ???constexpr boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<T> >::expression(T&&) [with T = user::number]???
136 | constexpr expression(T && t) : elements(static_cast<T &&>(t)) {}
| ^~~~~~~~~~
../libs/yap/test/user_expression_transform_1.cpp:462:35: error: call of overloaded ???expression(<brace-enclosed initializer list>)??? is ambiguous
462 | term<user::number> y{{3.0}};
| ^
In file included from ../libs/yap/test/user_expression_transform_1.cpp:6:
../boost/yap/expression.hpp:142:19: note: candidate: ???constexpr boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<T> >::expression(boost::hana::tuple<T>&&) [with T = user::number]???
142 | constexpr expression(hana::tuple<T> && rhs) : elements(std::move(rhs))
| ^~~~~~~~~~
../boost/yap/expression.hpp:139:19: note: candidate: ???constexpr boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<T> >::expression(const boost::hana::tuple<T>&) [with T = user::number]???
139 | constexpr expression(hana::tuple<T> const & rhs) : elements(rhs) {}
| ^~~~~~~~~~
../boost/yap/expression.hpp:136:19: note: candidate: ???constexpr boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<T> >::expression(T&&) [with T = user::number]???
136 | constexpr expression(T && t) : elements(static_cast<T &&>(t)) {}
| ^~~~~~~~~~
In file included from ../boost/yap/algorithm.hpp:614,
from ../boost/yap/expression.hpp:9,
from ../libs/yap/test/user_expression_transform_1.cpp:6:
../boost/yap/detail/transform.hpp: In instantiation of ???constexpr decltype(auto) boost::yap::detail::transform_expression_tag<Strict, Expr, TransformTuple, I, boost::yap::detail::expr_arity::two, boost::yap::detail::void_t<decltype ((* declval<TransformTuple>()[boost::hana::integral_constant<long long int, I>{}])(boost::yap::expr_tag<typename boost::yap::detail::remove_cv_ref<T>::type::kind>{}, boost::yap::detail::terminal_value(boost::yap::left(declval<Expr>())), boost::yap::detail::terminal_value(boost::yap::right(declval<Expr>()))))> >::operator()(Expr&&, TransformTuple) const [with bool Strict = false; Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >&; TransformTuple = boost::hana::tuple<user::plus_to_minus_xform_tag*>; int I = 0; boost::yap::detail::void_t<decltype ((* declval<TransformTuple>()[boost::hana::integral_constant<long long int, I>{}])(boost::yap::expr_tag<typename boost::yap::detail::remove_cv_ref<T>::type::kind>{}, boost::yap::detail::terminal_value(boost::yap::left(declval<Expr>())), boost::yap::detail::terminal_value(boost::yap::right(declval<Expr>()))))> = void; decltype ((* declval<TransformTuple>()[boost::hana::integral_constant<long long int, I>{}])(boost::yap::expr_tag<typename boost::yap::detail::remove_cv_ref<T>::type::kind>{}, boost::yap::detail::terminal_value(boost::yap::left(declval<Expr>())), boost::yap::detail::terminal_value(boost::yap::right(declval<Expr>())))) = boost::yap::expression<boost::yap::expr_kind::minus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >; typename boost::yap::detail::remove_cv_ref<T>::type = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >]???:
../boost/yap/detail/transform.hpp:573:44: required from ???constexpr decltype(auto) boost::yap::detail::transform_impl<Strict, I, IsExprRef>::operator()(Expr&&, TransformTuple) const [with Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >&; TransformTuple = boost::hana::tuple<user::plus_to_minus_xform_tag*>; bool Strict = false; int I = 0; bool IsExprRef = false]???
../boost/yap/algorithm.hpp:689:77: required from ???constexpr decltype(auto) boost::yap::detail::transform_<Strict>::operator()(Expr&&, Transform&, Transforms& ...) const [with Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >&; Transform = user::plus_to_minus_xform_tag; Transforms = {}; bool Strict = false]???
../boost/yap/algorithm.hpp:710:43: required from ???constexpr decltype(auto) boost::yap::transform(Expr&&, Transform&&, Transforms&& ...) [with Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >&; Transform = user::plus_to_minus_xform_tag; Transforms = {}]???
../libs/yap/test/user_expression_transform_1.cpp:504:30: required from here
../boost/yap/detail/transform.hpp:481:69: note: parameter passing for argument of type ???boost::yap::expression<boost::yap::expr_kind::minus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >??? when C++17 is enabled changed to match C++14 in GCC 10.1
481 | ::boost::yap::right(static_cast<Expr &&>(expr))));
| ^
In file included from ../boost/yap/algorithm.hpp:11,
from ../boost/yap/expression.hpp:9,
from ../libs/yap/test/user_expression_transform_1.cpp:6:
../boost/yap/detail/algorithm.hpp: In instantiation of ???constexpr auto boost::yap::detail::make_operand<T>::operator()(U&&) [with U = user::number; T = boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >]???:
../boost/yap/expression.hpp:192:5: required from ???constexpr auto boost::yap::operator+(boost::yap::expression<Kind, Tuple>&, Expr&&) [with boost::yap::expr_kind Kind = boost::yap::expr_kind::terminal; Tuple = boost::hana::tuple<user::number>; Expr = user::number]???
../libs/yap/test/user_expression_transform_1.cpp:525:45: required from here
../boost/yap/detail/algorithm.hpp:231:42: note: parameter passing for argument of type ???boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >??? when C++17 is enabled changed to match C++14 in GCC 10.1
231 | return T{static_cast<U &&>(u)};
| ^
In file included from ../boost/yap/algorithm.hpp:614,
from ../boost/yap/expression.hpp:9,
from ../libs/yap/test/user_expression_transform_1.cpp:6:
../boost/yap/detail/transform.hpp: In instantiation of ???constexpr decltype(auto) boost::yap::detail::transform_expression_tag<Strict, Expr, TransformTuple, I, boost::yap::detail::expr_arity::two, boost::yap::detail::void_t<decltype ((* declval<TransformTuple>()[boost::hana::integral_constant<long long int, I>{}])(boost::yap::expr_tag<typename boost::yap::detail::remove_cv_ref<T>::type::kind>{}, boost::yap::detail::terminal_value(boost::yap::left(declval<Expr>())), boost::yap::detail::terminal_value(boost::yap::right(declval<Expr>()))))> >::operator()(Expr&&, TransformTuple) const [with bool Strict = false; Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&; TransformTuple = boost::hana::tuple<user::term_nonterm_xform_tag*>; int I = 0; boost::yap::detail::void_t<decltype ((* declval<TransformTuple>()[boost::hana::integral_constant<long long int, I>{}])(boost::yap::expr_tag<typename boost::yap::detail::remove_cv_ref<T>::type::kind>{}, boost::yap::detail::terminal_value(boost::yap::left(declval<Expr>())), boost::yap::detail::terminal_value(boost::yap::right(declval<Expr>()))))> = void; decltype ((* declval<TransformTuple>()[boost::hana::integral_constant<long long int, I>{}])(boost::yap::expr_tag<typename boost::yap::detail::remove_cv_ref<T>::type::kind>{}, boost::yap::detail::terminal_value(boost::yap::left(declval<Expr>())), boost::yap::detail::terminal_value(boost::yap::right(declval<Expr>())))) = boost::yap::expression<boost::yap::expr_kind::minus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >; typename boost::yap::detail::remove_cv_ref<T>::type = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >]???:
../boost/yap/detail/transform.hpp:573:44: required from ???constexpr decltype(auto) boost::yap::detail::transform_impl<Strict, I, IsExprRef>::operator()(Expr&&, TransformTuple) const [with Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&; TransformTuple = boost::hana::tuple<user::term_nonterm_xform_tag*>; bool Strict = false; int I = 0; bool IsExprRef = false]???
../boost/yap/algorithm.hpp:689:77: required from ???constexpr decltype(auto) boost::yap::detail::transform_<Strict>::operator()(Expr&&, Transform&, Transforms& ...) const [with Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&; Transform = user::term_nonterm_xform_tag; Transforms = {}; bool Strict = false]???
../boost/yap/algorithm.hpp:710:43: required from ???constexpr decltype(auto) boost::yap::transform(Expr&&, Transform&&, Transforms&& ...) [with Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&; Transform = user::term_nonterm_xform_tag; Transforms = {}]???
../libs/yap/test/user_expression_transform_1.cpp:533:30: required from here
../boost/yap/detail/transform.hpp:481:69: note: parameter passing for argument of type ???boost::yap::expression<boost::yap::expr_kind::minus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >??? when C++17 is enabled changed to match C++14 in GCC 10.1
481 | ::boost::yap::right(static_cast<Expr &&>(expr))));
| ^
../boost/yap/detail/transform.hpp: In instantiation of ???constexpr decltype(auto) boost::yap::detail::transform_expression_expr<Strict, Expr, TransformTuple, I, boost::yap::detail::void_t<decltype ((* declval<TransformTuple>()[boost::hana::integral_constant<long long int, I>{}])(declval<Expr>()))> >::operator()(Expr&&, TransformTuple) const [with bool Strict = false; Expr = boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >&; TransformTuple = boost::hana::tuple<user::term_nonterm_xform_expr*>; int I = 0; boost::yap::detail::void_t<decltype ((* declval<TransformTuple>()[boost::hana::integral_constant<long long int, I>{}])(declval<Expr>()))> = void; decltype ((* declval<TransformTuple>()[boost::hana::integral_constant<long long int, I>{}])(declval<Expr>())) = boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >]???:
../boost/yap/detail/transform.hpp:431:80: required from ???constexpr decltype(auto) boost::yap::detail::transform_expression_tag<Strict, Expr, TransformTuple, I, Arity, <template-parameter-1-6> >::operator()(Expr&&, TransformTuple) const [with bool Strict = false; Expr = boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >&; TransformTuple = boost::hana::tuple<user::term_nonterm_xform_expr*>; int I = 0; boost::yap::detail::expr_arity Arity = boost::yap::detail::expr_arity::one; <template-parameter-1-6> = void]???
../boost/yap/detail/transform.hpp:573:44: required from ???constexpr decltype(auto) boost::yap::detail::transform_impl<Strict, I, IsExprRef>::operator()(Expr&&, TransformTuple) const [with Expr = boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >&; TransformTuple = boost::hana::tuple<user::term_nonterm_xform_expr*>; bool Strict = false; int I = 0; bool IsExprRef = false]???
../boost/yap/detail/transform.hpp:584:62: required from ???constexpr decltype(auto) boost::yap::detail::transform_impl<Strict, I, true>::operator()(Expr&&, TransformTuple) const [with Expr = const boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >&; TransformTuple = boost::hana::tuple<user::term_nonterm_xform_expr*>; bool Strict = false; int I = 0]???
../boost/yap/algorithm.hpp:689:77: required from ???constexpr decltype(auto) boost::yap::detail::transform_<Strict>::operator()(Expr&&, Transform&, Transforms& ...) const [with Expr = const boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >&; Transform = user::term_nonterm_xform_expr; Transforms = {}; bool Strict = false]???
../boost/yap/algorithm.hpp:710:43: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
../boost/yap/detail/transform.hpp:407:76: required by substitution of ???template<bool Strict, class Expr, class TransformTuple, int I> struct boost::yap::detail::transform_expression_expr<Strict, Expr, TransformTuple, I, boost::yap::detail::void_t<decltype ((* declval<TransformTuple>()[boost::hana::integral_constant<long long int, I>{}])(declval<Expr>()))> > [with bool Strict = false; Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&; TransformTuple = boost::hana::tuple<user::term_nonterm_xform_expr*>; int I = 0]???
../boost/yap/detail/transform.hpp:431:80: required from ???constexpr decltype(auto) boost::yap::detail::transform_expression_tag<Strict, Expr, TransformTuple, I, Arity, <template-parameter-1-6> >::operator()(Expr&&, TransformTuple) const [with bool Strict = false; Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&; TransformTuple = boost::hana::tuple<user::term_nonterm_xform_expr*>; int I = 0; boost::yap::detail::expr_arity Arity = boost::yap::detail::expr_arity::two; <template-parameter-1-6> = void]???
../boost/yap/detail/transform.hpp:573:44: required from ???constexpr decltype(auto) boost::yap::detail::transform_impl<Strict, I, IsExprRef>::operator()(Expr&&, TransformTuple) const [with Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&; TransformTuple = boost::hana::tuple<user::term_nonterm_xform_expr*>; bool Strict = false; int I = 0; bool IsExprRef = false]???
../boost/yap/algorithm.hpp:689:77: required from ???constexpr decltype(auto) boost::yap::detail::transform_<Strict>::operator()(Expr&&, Transform&, Transforms& ...) const [with Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&; Transform = user::term_nonterm_xform_expr; Transforms = {}; bool Strict = false]???
../boost/yap/algorithm.hpp:710:43: required from ???constexpr decltype(auto) boost::yap::transform(Expr&&, Transform&&, Transforms&& ...) [with Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&; Transform = user::term_nonterm_xform_expr; Transforms = {}]???
../libs/yap/test/user_expression_transform_1.cpp:540:30: required from here
../boost/yap/detail/transform.hpp:412:78: note: parameter passing for argument of type ???boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >??? when C++17 is enabled changed to match C++14 in GCC 10.1
412 | return (*transforms[hana::llong<I>{}])(static_cast<Expr &&>(expr));
| ^
../libs/yap/test/user_expression_transform_1.cpp: In instantiation of ???decltype(auto) user::term_nonterm_xform_expr::operator()(const boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<Expr1, Expr2> >&) [with Expr1 = boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >; Expr2 = boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >]???:
../boost/yap/detail/transform.hpp:407:76: required by substitution of ???template<bool Strict, class Expr, class TransformTuple, int I> struct boost::yap::detail::transform_expression_expr<Strict, Expr, TransformTuple, I, boost::yap::detail::void_t<decltype ((* declval<TransformTuple>()[boost::hana::integral_constant<long long int, I>{}])(declval<Expr>()))> > [with bool Strict = false; Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&; TransformTuple = boost::hana::tuple<user::term_nonterm_xform_expr*>; int I = 0]???
../boost/yap/detail/transform.hpp:431:80: required from ???constexpr decltype(auto) boost::yap::detail::transform_expression_tag<Strict, Expr, TransformTuple, I, Arity, <template-parameter-1-6> >::operator()(Expr&&, TransformTuple) const [with bool Strict = false; Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&; TransformTuple = boost::hana::tuple<user::term_nonterm_xform_expr*>; int I = 0; boost::yap::detail::expr_arity Arity = boost::yap::detail::expr_arity::two; <template-parameter-1-6> = void]???
../boost/yap/detail/transform.hpp:573:44: required from ???constexpr decltype(auto) boost::yap::detail::transform_impl<Strict, I, IsExprRef>::operator()(Expr&&, TransformTuple) const [with Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&; TransformTuple = boost::hana::tuple<user::term_nonterm_xform_expr*>; bool Strict = false; int I = 0; bool IsExprRef = false]???
../boost/yap/algorithm.hpp:689:77: required from ???constexpr decltype(auto) boost::yap::detail::transform_<Strict>::operator()(Expr&&, Transform&, Transforms& ...) const [with Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&; Transform = user::term_nonterm_xform_expr; Transforms = {}; bool Strict = false]???
../boost/yap/algorithm.hpp:710:43: required from ???constexpr decltype(auto) boost::yap::transform(Expr&&, Transform&&, Transforms&& ...) [with Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&; Transform = user::term_nonterm_xform_expr; Transforms = {}]???
../libs/yap/test/user_expression_transform_1.cpp:540:30: required from here
../libs/yap/test/user_expression_transform_1.cpp:175:65: note: parameter passing for argument of type ???boost::yap::expression<boost::yap::expr_kind::minus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >??? when C++17 is enabled changed to match C++14 in GCC 10.1
175 | yap::transform(::boost::yap::right(expr), *this));
| ^
In file included from ../boost/yap/algorithm.hpp:614,
from ../boost/yap/expression.hpp:9,
from ../libs/yap/test/user_expression_transform_1.cpp:6:
../boost/yap/detail/transform.hpp: In instantiation of ???constexpr decltype(auto) boost::yap::detail::transform_expression_tag<Strict, Expr, TransformTuple, I, boost::yap::detail::expr_arity::one, boost::yap::detail::void_t<decltype ((* declval<TransformTuple>()[boost::hana::integral_constant<long long int, I>{}])(boost::yap::expr_tag<typename boost::yap::detail::remove_cv_ref<T>::type::kind>{}, boost::yap::detail::terminal_value(boost::yap::value(declval<Expr>()))))> >::operator()(Expr&&, TransformTuple) const [with bool Strict = false; Expr = boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >&; TransformTuple = boost::hana::tuple<user::term_nonterm_xform_tag*>; int I = 0; boost::yap::detail::void_t<decltype ((* declval<TransformTuple>()[boost::hana::integral_constant<long long int, I>{}])(boost::yap::expr_tag<typename boost::yap::detail::remove_cv_ref<T>::type::kind>{}, boost::yap::detail::terminal_value(boost::yap::value(declval<Expr>()))))> = void; decltype ((* declval<TransformTuple>()[boost::hana::integral_constant<long long int, I>{}])(boost::yap::expr_tag<typename boost::yap::detail::remove_cv_ref<T>::type::kind>{}, boost::yap::detail::terminal_value(boost::yap::value(declval<Expr>())))) = boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >; typename boost::yap::detail::remove_cv_ref<T>::type = boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >]???:
../boost/yap/detail/transform.hpp:573:44: required from ???constexpr decltype(auto) boost::yap::detail::transform_impl<Strict, I, IsExprRef>::operator()(Expr&&, TransformTuple) const [with Expr = boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >&; TransformTuple = boost::hana::tuple<user::term_nonterm_xform_tag*>; bool Strict = false; int I = 0; bool IsExprRef = false]???
../boost/yap/detail/transform.hpp:314:29: required from ???boost::yap::detail::transform_nonterminal<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > >&, boost::hana::tuple<user::term_nonterm_xform_tag*> >(const boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > >&, boost::hana::tuple<user::term_nonterm_xform_tag*>)::<lambda(auto:14&&)> [with auto:14 = boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >&]???
../boost/hana/transform.hpp:62:42: required from ???constexpr auto boost::hana::transform_impl<S, boost::hana::when<boost::hana::Sequence<S>::value> >::transformer<F>::operator()(Xs&& ...) const [with Xs = {boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >&, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >&}; F = boost::yap::detail::transform_nonterminal<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > >&, boost::hana::tuple<user::term_nonterm_xform_tag*> >(const boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > >&, boost::hana::tuple<user::term_nonterm_xform_tag*>)::<lambda(auto:14&&)>*; S = boost::hana::tuple_tag]???
../boost/hana/basic_tuple.hpp:125:39: required from ???static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::basic_tuple_tag>::apply(boost::hana::detail::basic_tuple_impl<std::integer_sequence<long unsigned int, _Idx ...>, Xn ...>&, F&&) [with long unsigned int ...i = {0, 1}; Xn = {boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >}; F = boost::hana::transform_impl<boost::hana::tuple_tag, boost::hana::when<true> >::transformer<boost::yap::detail::transform_nonterminal<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > >&, boost::hana::tuple<user::term_nonterm_xform_tag*> >(const boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > >&, boost::hana::tuple<user::term_nonterm_xform_tag*>)::<lambda(auto:14&&)>*>]???
../boost/hana/unpack.hpp:47:29: required from ???constexpr decltype(auto) boost::hana::unpack_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::basic_tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > >&; F = boost::hana::transform_impl<boost::hana::tuple_tag, boost::hana::when<true> >::transformer<boost::yap::detail::transform_nonterminal<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > >&, boost::hana::tuple<user::term_nonterm_xform_tag*> >(const boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > >&, boost::hana::tuple<user::term_nonterm_xform_tag*>)::<lambda(auto:14&&)>*>]???
../boost/hana/tuple.hpp:233:32: [ skipping 7 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
../boost/yap/detail/transform.hpp:396:71: required from ???constexpr decltype(auto) boost::yap::detail::transform_expression_expr<Strict, Expr, TransformTuple, I, <template-parameter-1-5> >::operator()(Expr&&, TransformTuple) const [with bool Strict = false; Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&; TransformTuple = boost::hana::tuple<user::term_nonterm_xform_tag*>; int I = 0; <template-parameter-1-5> = void]???
../boost/yap/detail/transform.hpp:431:80: required from ???constexpr decltype(auto) boost::yap::detail::transform_expression_tag<Strict, Expr, TransformTuple, I, Arity, <template-parameter-1-6> >::operator()(Expr&&, TransformTuple) const [with bool Strict = false; Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&; TransformTuple = boost::hana::tuple<user::term_nonterm_xform_tag*>; int I = 0; boost::yap::detail::expr_arity Arity = boost::yap::detail::expr_arity::two; <template-parameter-1-6> = void]???
../boost/yap/detail/transform.hpp:573:44: required from ???constexpr decltype(auto) boost::yap::detail::transform_impl<Strict, I, IsExprRef>::operator()(Expr&&, TransformTuple) const [with Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&; TransformTuple = boost::hana::tuple<user::term_nonterm_xform_tag*>; bool Strict = false; int I = 0; bool IsExprRef = false]???
../boost/yap/algorithm.hpp:689:77: required from ???constexpr decltype(auto) boost::yap::detail::transform_<Strict>::operator()(Expr&&, Transform&, Transforms& ...) const [with Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&; Transform = user::term_nonterm_xform_tag; Transforms = {}; bool Strict = false]???
../boost/yap/algorithm.hpp:710:43: required from ???constexpr decltype(auto) boost::yap::transform(Expr&&, Transform&&, Transforms&& ...) [with Expr = boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&; Transform = user::term_nonterm_xform_tag; Transforms = {}]???
../libs/yap/test/user_expression_transform_1.cpp:593:30: required from here
../boost/yap/detail/transform.hpp:459:69: note: parameter passing for argument of type ???boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >??? when C++17 is enabled changed to match C++14 in GCC 10.1
459 | ::boost::yap::value(static_cast<Expr &&>(expr))));
| ^
In file included from ../boost/hana/fwd/basic_tuple.hpp:14,
from ../boost/hana/basic_tuple.hpp:13,
from ../boost/hana/functional/partial.hpp:13,
from ../boost/hana/fold_left.hpp:19,
from ../boost/hana/concept/foldable.hpp:19,
from ../boost/hana/core/to.hpp:16,
from ../boost/hana/bool.hpp:17,
from ../boost/hana/integral_constant.hpp:13,
from ../boost/yap/algorithm_fwd.hpp:11,
from ../boost/yap/algorithm.hpp:9,
from ../boost/yap/expression.hpp:9,
from ../libs/yap/test/user_expression_transform_1.cpp:6:
../boost/hana/fwd/core/make.hpp: In instantiation of ???constexpr decltype(auto) boost::hana::make_t<Tag>::operator()(X&& ...) const [with X = {boost::yap::expression<boost::yap::expr_kind::minus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >}; Tag = boost::hana::tuple_tag]???:
../boost/hana/transform.hpp:62:37: required from ???constexpr auto boost::hana::transform_impl<S, boost::hana::when<boost::hana::Sequence<S>::value> >::transformer<F>::operator()(Xs&& ...) const [with Xs = {boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >&, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >&}; F = boost::yap::detail::transform_nonterminal<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > >&, boost::hana::tuple<user::term_nonterm_xform_tag*> >(const boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > >&, boost::hana::tuple<user::term_nonterm_xform_tag*>)::<lambda(auto:14&&)>*; S = boost::hana::tuple_tag]???
../boost/hana/basic_tuple.hpp:125:39: required from ???static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::basic_tuple_tag>::apply(boost::hana::detail::basic_tuple_impl<std::integer_sequence<long unsigned int, _Idx ...>, Xn ...>&, F&&) [with long unsigned int ...i = {0, 1}; Xn = {boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >}; F = boost::hana::transform_impl<boost::hana::tuple_tag, boost::hana::when<true> >::transformer<boost::yap::detail::transform_nonterminal<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > >&, boost::hana::tuple<user::term_nonterm_xform_tag*> >(const boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > >&, boost::hana::tuple<user::term_nonterm_xform_tag*>)::<lambda(auto:14&&)>*>]???
../boost/hana/unpack.hpp:47:29: required from ???constexpr decltype(auto) boost::hana::unpack_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::basic_tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > >&; F = boost::hana::transform_impl<boost::hana::tuple_tag, boost::hana::when<true> >::transformer<boost::yap::detail::transform_nonterminal<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > >&, boost::hana::tuple<user::term_nonterm_xform_tag*> >(const boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > > >&, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::plus, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> >, boost::yap::expression<boost::yap::expr_kind::expr_ref, boost::hana::tuple<boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> >*> > > >, boost::yap::expression<boost::yap::expr_kind::terminal, boost::hana::tuple<user::number> > >&, boost::hana::tuple<user::term_nonterm_xform_tag*>)::<lambda(auto:14&&)>*...
[The content has been trimmed by the report system because it exceeds 65536 bytes]