|
Boost : |
Subject: [boost] A few more critical dependencies
From: Peter Dimov (lists_at_[hidden])
Date: 2014-06-02 17:04:41
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.
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.)
generator_iterator.hpp perhaps needs to be moved to iterator.
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.
Comments? Objections?
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk