
AMDG I vote to accept ScopeExit into boost. As has already been mentioned you need to use __COUNT__ instead of __LINE__ for msvc. BOOST_SCOPE_EXIT_FASTER_IMPL is slower under msvc 8.0 #include <iostream> #include <boost/scope_exit.hpp> #include <boost/timer.hpp> int main() { boost::timer timer; for(int i = 0; i < 100000000; ++i) { int j = 0; BOOST_SCOPE_EXIT((j)) { ++j; } BOOST_SCOPE_EXIT_END; } std::cout << timer.elapsed() << std::endl; } This takes .718 seconds with BOOST_SCOPE_EXIT_FASTER_IMPL and .484 seconds without it. I think that you should remove this option since it doesn't do any good. BOOST_SCOPE_EXIT_TRY/BOOST_SCOPE_EXIT_CATCH_ALL: I do not think that these macros are useful. If I want to catch all the exceptions then I can just put try/catch in myself. There is no need to have an extra pair of macros to do it for me. boost_scope_exit_params_struct_nn needs to declare an assignment operator to suppress warning C4512: 'main::boost_scope_exit_params_struct_20' : assignment operator could not be generated. In Christ, Steven Watanabe