Opened 11 years ago
Closed 6 years ago
#5604 closed Feature Requests (fixed)
Boost.Phoenix: Provide access to thrown exception in catch handler
Reported by: | Owned by: | Thomas Heller | |
---|---|---|---|
Milestone: | Component: | phoenix | |
Version: | Boost 1.47.0 | Severity: | Problem |
Keywords: | exception placeholder | Cc: | braden@… |
Description
I've been using Phoenix (the one that came with 1.44 - that's Phoenix v2?) for a bit, as a Boost.Lambda replacement, mostly happily. But I've come across a scenario I don't think Phoenix caters for, namely accessing an exception from a catch_ body, something like this:
std::vector<std::string> errors; using namespace boost::phoenix; using namespace boost::phoenix::arg_names; std::for_each(changes.begin(), changes.end(), try_ [ bind(&SomeClass::AddChange, this, arg1, std::string()) ] .catch_<std::runtime_error>()` [ push_back(ref(errors), bind(&std::runtime_error::what, /* Can I access the exception that's been thrown? */)) ]);
I want to aggregate any error information thrown by SomeClass::AddChange
in the errors
vector, to be rethrown after the for_each. In Boost.Lambda, I'd be able to use the _e
placeholder to access the exception object, but there seems to be no way of doing so in Phoenix?
Adding a similar placeholder to give access to the exception object would be a very useful addition to Phoenix...
Change History (9)
comment:1 by , 11 years ago
Milestone: | To Be Determined → Boost 1.48.0 |
---|---|
Status: | new → assigned |
Version: | Boost 1.44.0 → Boost 1.47.0 |
comment:2 by , 11 years ago
Milestone: | Boost 1.48.0 → To Be Determined |
---|
comment:3 by , 8 years ago
follow-up: 5 comment:4 by , 8 years ago
This is now on develop. It has missed the cutoff for Boost 1.58.0 but will be in the next release of Boost. Thanks to Kohei Takakashi
comment:5 by , 8 years ago
Replying to John Fletcher <J.P.Fletcher@…>:
This is now on develop. It has missed the cutoff for Boost 1.58.0 but will be in the next release of Boost. Thanks to Kohei Takakashi
Sorry, that should be Kohei Takahashi.
comment:6 by , 7 years ago
Cc: | added |
---|
comment:9 by , 6 years ago
Milestone: | To Be Determined |
---|---|
Resolution: | → fixed |
Status: | assigned → closed |
I implemented this feature and has been merged, see h ttps://github.com/boostorg/phoenix/pull/13.