
On Tue, Jul 15, 2008 at 7:11 PM, David Abrahams <dave@boostpro.com> wrote:
on Tue Jul 15 2008, "Emil Dotchevski" <emil-AT-revergestudios.com> wrote:
Here is an example: adding the Exception library "broke" several other libraries that were throwing ints or enums through boost::throw_exception. The fact is that boost::throw_exception has always required that its argument is of type that derives from std::exception, but it did nothing to enforce this requirement. Now it does enforce it which exposed the bugs in the other libraries. This is a good thing.
That was one of the kinds of cases I had in mind when wondering if it was a good idea to rely on dependent libraries' tests to discover problems in a library.
As opposed to? I mean, it's not like you want to rely on other libraries to catch your bugs, but you can't be 101% sure you're not using other libraries inappropriately. For example, you might depend on an implementation detail of another library without knowing it (note that "not knowing it" isn't always a matter of being careless.) This might become source of regressions, which are typically undetected until the implementation of the dependent library changes. Emil Dotchevski Reverge Studios, Inc. http://www.revergestudios.com/reblog/index.php?n=ReCode