
This is an update to the proposed boost::exception library (the source code, full documentation and tests are available at http://www.revergestudios.com/boost-exception/boost-exception.htm.) Last thing that I wanted to clear before requesting a formal boost review for boost::exception is renaming exception_info as a workaround for the name clash with the macro with the same name (lowercase and all) defined by windows.h. The two candidates I like for renaming exception_info are: except_info throw_info Here is an example of how they would look in code: throw my_exception() << except_info<tag_errno>(errno) << except_info<tag_function>(BOOST_CURRENT_FUNCTION); -or- throw my_exception() << throw_info<tag_errno>(errno) << throw_info<tag_function>(BOOST_CURRENT_FUNCTION); The above is a use case of encoding exception information at the time of the throw. The other use case is to catch a boost::exception, add exception info to it and re-throw. Here is an example of how each of except_info and throw_info would look in that case: catch( boost::exception & x ) { x << except_info<tag_filename>(fn); throw; } -or- catch( boost::exception & x ) { x << throw_info<tag_filename>(fn); throw; } Any strong preferences? Thanks, Emil Dotchevski