Boost logo

Boost :

From: Tobias Schwinger (tschwinger_at_[hidden])
Date: 2007-10-06 07:45:04

Peter Dimov wrote:
> Tobias Schwinger wrote:
>> This approach provides better integration. But we're back in
>> boilerplate land (as you showed earlier in this thread).
> Boilerplate compared to what? You have to keep in mind where we're coming
> from:

<snip code: good old exception class>

> Switching to boost::exception actually removes most of the boilerplate code
> (at the expense of some memory allocations).

Actually I was comparing

     typedef boost::custom_exception<
         base,tag_a,tag_b /*...*/> my_exception;


     class my_exception : base
          my_exception(a_t const& a, b_t const& b /*...*/)
             (*this) << boost::error_info<tag_a>(a)
                 << boost::error_info<tag_b>(b)
             // ...


Of course, both variants have the potential to remove quite a lot of
boilerplate from traditional exception code.

> The dynamic allocation problem
> can likely be addressed by adding an allocator argument to boost::exception.

Yes, but adding allocator support shouldn't be substitute for
considering a more economic data structure (e.g. a single-linked list),

Peter, is there any chance for you to find the time to write a full review?

Tobias Schwinger
- Review Manager -

Boost list run by bdawes at, gregod at, cpdaniel at, john at