Boost logo

Boost :

Subject: Re: [boost] New dependency report
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2014-06-08 09:16:58


On Sunday 08 June 2014 04:12:26 Peter Dimov wrote:
> Andrey Semashev wrote:
>
> > I think, at first it will be simply enough to just move the components to
> > the new submodule.
>
> Even that is going to not be as easy as it sounds. Look at
> boost/mpl/and.hpp, for example. And it's not clear whether, if we move a
> component into MPL.Core and remove all workarounds, this will not break
> components in MPL that depend on those workarounds for some reason.
>
> In short, it looks like a nontrivial project. Maybe it's easier than it
> appears. I don't know.

Eyes are afraid, hands are doing. :) Here is my first take on this:

https://github.com/Lastique/mpl_core/tree/develop
https://github.com/Lastique/mpl/tree/develop

I moved the files required for the root headers listed in root_list.txt to
MPL.Core. Basically, its all numeric wrappers (bool_, int_, etc.), operations
on them, if_, eval_if, void_ and a few utils that are likely used in
libraries: assert.hpp, print.hpp and identity.hpp. The complete list of what
was moved is in move_headers.txt.

The resulting MPL.Core depends on Config, Preprocessor and TypeTraits. From
TypeTraits it only needs is_class.hpp in mpl/has_xxx.hpp. That dependency is
only used to work around Borland bugs. I'm inclined to just remove that
workaround. Alternatively, this trait could be replicated in MPL.Core just for
this one compiler.

Not a bad starting point, IMHO.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk