From: Gennadiy Rozental (gennadiy.rozental_at_[hidden])
Date: 2004-06-29 22:01:43


> I dare say that Boost.Test should avoid dependencies on boost
> libraries. I would suggest isolating the MPL dependencies even if
> that means re-implementing the parts that it uses. Boost.Test is
> special and avoiding cyclic dependency will help us not go insane.

> Joel de Guzman

At the moment Boost.Test directly depends on:

boost/call_traits.hpp
boost/config.hpp
boost/config/auto_link.hpp
boost/cstdlib.hpp
boost/current_function.hpp
boost/detail/workaround.hpp
boost/function/function0.hpp
boost/function/function1.hpp
boost/limits.hpp
boost/mem_fn.hpp
boost/mpl/for_each.hpp
boost/mpl/identity.hpp
boost/preprocessor/arithmetic/add.hpp
boost/preprocessor/repetition/repeat.hpp
boost/preprocessor/seq/for_each.hpp
boost/progress.hpp
boost/scoped_ptr.hpp
boost/shared_ptr.hpp
boost/type.hpp
boost/type_traits/add_const.hpp
boost/type_traits/add_pointer.hpp
boost/utility.hpp
boost/utility/addressof.hpp
boost/utility/base_from_member.hpp
boost/version.hpp

Actually MPL and Boost.Function dependency is not critical yet since it does
not affect library compilation and used only for extensions. But I
definitely is not going to reimplement all above headers.
   Don't forget that Boost.Test among other things is standalone library and
in may have need for use some existent core components. I wanted to propose
to introduce macro BOOST_INTERNAL_TEST. If this macro is defined I will try
to ifdef out optional dependencies. Boost libraries authors may define this
symbol. Though In general I do not see anything wrong with Boost.Test
dependencies on other boost components unless it introduce loops: Boost.Test
depends on component that uses Boost.Test for unit testing. I believe it
resolvable by using different layers of Boost.Test or with macro proposition
above.
  In a near future I plan to use boost::optional, iterator_facade
boost::lexical_cast and probably boost::function and boost::bind. And I am
sure dependency keep grow. My only limitation is that it should work on all
platforms where we perform regression testing.

Regards,

Gennadiy.