|
Boost : |
Subject: Re: [boost] Tests are a mess
From: vicente.botet (vicente.botet_at_[hidden])
Date: 2008-09-11 12:33:08
______________________
Vicente Juan Botet Escribá
----- Original Message -----
From: "Peter Bartlett" <pete_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Thursday, September 11, 2008 5:02 PM
Subject: Re: [boost] Tests are a mess
>
> Quoting Robert Ramey <ramey_at_[hidden]>:
>
>> Pete Bartlett wrote:
>>> Robert Ramey wrote:
>>>> [..] But don't go foisting on me a whole new layer of work [...]
>>>
>>> Sadly, by introducing boost::serialization::throw_exception, you have
>>> foisted work on me and other users of your library. Now we have to
>>> implement
>>>
>>> boost::serialization::throw_exception instead of just having one
>>> boost::throw_exception. This is exactly the kind of breakage you've
>>> been so strongly opposed to.
>>
>> You're blaming the victim here. This problem isn't caused by me,
>
> You've begged the question there. What is the specific, concrete, problem
> ? The introduction of BOOST_NO_RTTI solves the problem found in 1.36.
>
> If you mean that the header is still larger than in 1.35 then ok, its an
> arguable point, but surely the decision should be made by end-user (who
> may wish to disable the functionality (BOOST_DISABLE_EXCEPTION) or tweak
> his pre-compiled header), not by an intermediate library.
>
> To literally break the end-user's compile because of this smacks of
> cutting off one's nose to spite the face.
Robert,
maybe you can do the following:
namespace boost {
void throw_exception(std::exception const & e); // user defined
namespace serialization {
#ifdef BOOST_NO_EXCEPTIONS
void throw_exception(std::exception const & e) {
::boost::throw_exception(e);
}
#else
template<class E> inline void throw_exception(E const & e)
{
throw e;
}
#endif
In this way, the user need to define only the boost::throw_exception
function when BOOST_NO_EXCEPTIONS is defined.
Vicente
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk