|
Boost : |
From: Peter Dimov (pdimov_at_[hidden])
Date: 2002-08-13 16:37:24
From: "William E. Kempf" <williamkempf_at_[hidden]>
>
> OK, sorry for the misunderstanding. I guess I don't see how it could be
> implemented. Everything I can think of will lead to sliced objects in at
> least some circumstances, making the utility very limited. Maybe that's
> what you mean by it not being worth implementing?
The signal/noise ratio in these threads is too low. :-)
What can an implementation do:
1. Transport the exception as-is using compiler magic;
2. Transport the exception as-is using support from the exception itself (it
needs to be derived from a specific base that offers clone() and
throw_this());
3. Transport a previously agreed upon set of types as-is;
3a. Use the standard exceptions as the set;
3b. Allow the user to pass the set;
4. Translate the exception to something else, preserving typeid().name() and
what(), where appropriate.
The problem with 3b is that it leads to a different interface (extra
parameter for the exception list.) Obviously, our ideal is (1), that doesn't
need the extra parameter, so we have to decide whether (3b) is worth it or
not.
The options aren't mutually exclusive, by the way. They play well with each
other.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk