On Friday 06 June 2014 13:43:37 Ion Gaztañaga wrote:
El 06/06/2014 13:17, Peter Dimov escribió:
Antony Polukhin wrote:
May be it would be better to move boost/mpl/bool.hpp, boost/mpl/bool_fwd.hpp, boost/mpl/integral_c.hpp, mpl/or.hpp, mpl/identity.hpp, mpl/and.hpp into the Core library?
No, a header called boost/mpl/something.hpp will never be part of Core, and neither will a component boost::mpl::something. We might duplicate these as boost/core/something.hpp and boost::core::something, but they will not be quite the same as their mpl counterparts, and will not magically make a module that includes a boost/mpl/ header drop its dependency to MPL.
An option is to implement them into boost::core namespace and inject them into boost::mpl namespace in boost/mpl/. Then each library can break mpl dependencies incluing core headers and namespaces instead of mpl ones. But this is not trivial.
From dependencies standpoint, MPL does not add much, see our earlier exchange [1]. I think value_init can be moved to Core and changed to depend on TypeTraits.Core once it's ready. detail/endian.hpp has been handled already.
Even now, looking at the report [2], the situation is much better than it was before, when we discussed it. MPL decomposition is also pending, but it's probably better to split it into two modules MPL and MPL.Core, similar to TypeTraits. For many cases dependency on MPL.Core would be enough. [1] http://lists.boost.org/Archives/boost/2014/06/213916.php [2] http://www.pdimov.com/tmp/report-6d1f271/mpl.html