
Kim Barrett <kab <at> irobot.com> writes:
First, I really like this proposal, and think it should be accepted into Boost.
Thanks!
I imagine some people might think that having the transaction cleanup actions next to the start of the transaction clutters the main line of execution code with "exception handling" code. However, as a long-time user of various programming languages with "finally" style cleanup actions after a protected body (various Lisp dialects, Java, Python), I've often found that having the cleanup action far removed from what is to be cleaned up makes it difficult to ensure during maintenance that the cleanup actions are always being updated appropriately.
I totally agree with you.
My only (mild) quibble is the decision to use a PP sequence for the arguments. I might prefer that this library be forward looking and assume variadic macros, with backward compatibility variants that use the PP sequence technique for use by those who need to support compilers that don't support variadic macros.
How would you implement dispatching if there is only one argument? E.g. BOOST_SCOPE_EXIT(i) vs. BOOST_SCOPE_EXIT( (i) ). AFAIK, there is no equivalent to mpl::is_sequence in PP. -- Alexander