|
Boost : |
Subject: Re: [boost] A few more critical dependencies
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2014-06-02 17:40:17
Le 02/06/14 23:04, Peter Dimov a écrit :
> At present, we have three dependencies that we can easily cut and
> doing so will be very beneficial:
>
> 1. type_traits now depends on utility only because
>
> utility:
> <boost/utility/declval.hpp>
> from <boost/type_traits/common_type.hpp>
> from <boost/type_traits/detail/common_type_imp.hpp>
> from <boost/type_traits/is_copy_constructible.hpp>
> from <boost/type_traits/is_nothrow_move_assignable.hpp>
> from <boost/type_traits/is_nothrow_move_constructible.hpp>
>
> Since declval.hpp itself depends on type_traits
> (add_rvalue_reference), it can't go to core and the most logical place
> for it is type_traits itself.
>
Agreed. declval is used much of the time to build traits.
> 2. utility depends on iterator because
>
> iterator:
> <boost/iterator.hpp>
> from <boost/operators.hpp>
> <boost/iterator/iterator_facade.hpp>
> from <boost/generator_iterator.hpp>
>
> boost/iterator.hpp can be moved to core in all its former glory (and
> probably replaced by a one-liner, using std::iterator.)
>
I would move iterator to workaround (config?) instead of moving it to Core.
> generator_iterator.hpp perhaps needs to be moved to iterator.
>
+1.
> 3. mpl depends on detail because
>
> detail:
> <boost/detail/endian.hpp>
> from <boost/mpl/string.hpp>
> <boost/detail/lightweight_test.hpp>
> from <boost/mpl/aux_/test.hpp>
>
> That last one is just because lightweight_test.hpp hasn't been removed
> from Detail yet; let me know if I should do that.
>
> boost/detail/endian.hpp is just a forwarding header that includes
> <boost/predef/detail/endian_compat.h>. We should move it to Predef.
I agree with Rene here, replacing the include and the macros in mpl
would remove the dependency, but it needs the approval of the author.
Moving the file detail/endian.hpp to the module Predef don't needs any
change. Just do a different assignation.
Vicente
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk