
[snip]
The easiest way to port existing code to using boost::exception is to use enable_error_info. This adds no boilerplate code, and requires no changes to any exception classes. All you have to do is replace "throw my_exception(a,b,c)" with "throw enable_error_info(my_exception(a,b,c))".
Has the approach of saving all data to a global structure (instead of to the exception class hierarchy itself) been considered? PS: I'm not suggesting it should be done that way, but only asking if it was considered at all.
You can not use global storage for the data that's stored in exception objects because in general, multiple exception objects can be active at the same time (this has nothing to do with boost::exception, it's just the way exceptions are defined in C++.) Emil Dotchevski