On Saturday 31 May 2014 17:21:42 Peter Dimov wrote:
I propose the creation of a new module, Boost.Core, a repository of Boost core utilities.
The criteria for inclusion into this module would be that the utility component is (a) simple, (b) used by other Boost libraries, (c) does not depend on any headers outside of Core and Config (and perhaps Assert).
Its primary purpose would be to break dependencies. It will not serve as a repository of "this might be useful".
Based on the interest so far, I volunteer myself, Glen Fernandes and Andrey Semashev as maintainers.
The following utilities are immediate candidates for migration into the new module:
- addressof - enable_if - boost/pointee.hpp - boost/indirect_reference.hpp - boost/type.hpp
In addition, the following can be duplicated inside to reduce dependencies:
- mpl::if_, if_c, eval_if - detail/is_incrementable.hpp - remove_cv
and so on.
I like the general idea but I'm worried about needing to duplicate things. The list is short now, but I'm sure it will get bigger. Maybe that's a sign that something that needs these components do not fit into Boost.Core. OTOH, MPL and TypeTraits stuff you mentioned is commonly used, so I suspect if we limit ourselves to avoid them then Boost.Core will be almost empty. Maybe we should decompose MPL and TypeTraits first and then use the smaller bits in Core?