Compile [2024-11-13 04:42:13 UTC]: fail
"clang++-18" -fvisibility-inlines-hidden -Wno-c99-extensions -std=c++2b -fPIC -pthread -O0 -fno-inline -Wall -fvisibility=hidden -m64 --target=x86_64-pc-linux -DBOOST_ALL_NO_LIB=1 -DBOOST_COBALT_USE_STD_PMR=1 -I".." -c -o "/var/boost/run/results/boost/bin.v2/libs/phoenix/test/exceptions.test/clang-linux-18~c++2b/debug/x86_64/debug-symbols-off/threading-multi/visibility-hidden/statement/exceptions.o" "../libs/phoenix/test/statement/exceptions.cpp"
../libs/phoenix/test/statement/exceptions.cpp:124:9: error: no viable overloaded operator[] for type 'const catch_gen<base_type, exception, actor<basic_expr<terminal, term<local<_e_key>>, 0>>>' (aka 'const catch_gen<actor<boost::proto::exprns_::basic_expr<boost::phoenix::tag::try_catch, boost::proto::argsns_::list1<boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::tag::throw_, boost::proto::argsns_::list1<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<std::runtime_error>, 0>>, 1>>>, 1>>, std::exception, boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::phoenix::detail::local<boost::phoenix::local_names::_e_key>>, 0>>>')
121 | try_
| ~~~~
122 | [ throw_(runtime_error("error")) ]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
123 | .catch_<exception>(_e)
| ~~~~~~~~~~~~~~~~~~~~~~
124 | [
| ^
125 | ref(caught_exception) = true
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
126 | // ambiguous with std::ref
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
127 | , phx::ref(what) = phx::bind(&exception::what, _e)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/phoenix/statement/try_catch.hpp:413:9: note: candidate function template not viable: requires single argument 'expr', but 2 arguments were provided
413 | operator[](Expr const& expr) const
| ^ ~~~~~~~~~~~~~~~~
../libs/phoenix/test/statement/exceptions.cpp:141:9: error: no viable overloaded operator[] for type 'const catch_gen<base_type, base_exception, actor<basic_expr<terminal, term<local<_e_key>>, 0>>>' (aka 'const catch_gen<actor<boost::proto::exprns_::basic_expr<boost::phoenix::tag::try_catch, boost::proto::argsns_::list1<boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::tag::throw_, boost::proto::argsns_::list1<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<extended_exception>, 0>>, 1>>>, 1>>, base_exception, boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::phoenix::detail::local<boost::phoenix::local_names::_e_key>>, 0>>>')
138 | try_
| ~~~~
139 | [ throw_(extended_exception("error")) ]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
140 | .catch_<base_exception>(_e) // A thrown object should not be copied due to slicing.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
141 | [
| ^
142 | ref(caught_exception) = true
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
143 | // ambiguous with std::ref
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
144 | , phx::ref(what) = phx::bind(&exception::what, _e)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/phoenix/statement/try_catch.hpp:413:9: note: candidate function template not viable: requires single argument 'expr', but 2 arguments were provided
413 | operator[](Expr const& expr) const
| ^ ~~~~~~~~~~~~~~~~
../libs/phoenix/test/statement/exceptions.cpp:170:9: error: no viable overloaded operator[] for type 'const catch_gen<base_type, exception, actor<basic_expr<terminal, term<local<_e_key>>, 0>>>' (aka 'const catch_gen<actor<boost::proto::exprns_::basic_expr<boost::phoenix::tag::try_catch, boost::proto::argsns_::list2<boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::tag::try_catch, boost::proto::argsns_::list1<boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::tag::throw_, boost::proto::argsns_::list1<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<std::runtime_error>, 0>>, 1>>>, 1>>, boost::proto::exprns_::basic_expr<boost::phoenix::tag::catch_, boost::proto::argsns_::list2<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::phoenix::catch_exception<std::basic_string<char, std::char_traits<char>, std::allocator<char>>>>, 0>, boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::assign, boost::proto::argsns_::list2<boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::reference_wrapper<bool>>, 0>>, boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<bool>, 0>>>, 2>>>, 2>>, 2>>, std::exception, boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::phoenix::detail::local<boost::phoenix::local_names::_e_key>>, 0>>>')
165 | try_
| ~~~~
166 | [ throw_(runtime_error("error")) ]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
167 | .catch_<string>()
| ~~~~~~~~~~~~~~~~~
168 | [ ref(caught_correct_exception) = false ]
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
169 | .catch_<exception>(_e)
| ~~~~~~~~~~~~~~~~~~~~~~
170 | [
| ^
171 | ref(caught_correct_exception) = true
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
172 | // ambiguous with std::ref
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
173 | , phx::ref(what) = phx::bind(&exception::what, _e)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/phoenix/statement/try_catch.hpp:413:9: note: candidate function template not viable: requires single argument 'expr', but 2 arguments were provided
413 | operator[](Expr const& expr) const
| ^ ~~~~~~~~~~~~~~~~
3 errors generated.