Boost logo

Boost :

Subject: [boost] [modularization] Improving/splitting up detail
From: John Maddock (john_at_[hidden])
Date: 2013-11-01 15:15:17


Lets say we wanted boost/detail to depend on nothing but config, here's what
it would take:

boost/detail/algorithm.hpp

    Used by graph lib only, suggest it's moved there.

boost/detail/allocator_utilities.hpp

    Used by multi index, statechart and flyweight, suggest move to new
"common" module.

boost/detail/atomic_count.hpp

    Depends on smart_ptr's details only, suggest those details are moved to
"detail" module.

boost/detail/binary_search.hpp

    Used by python and test, move to "common".

boost/detail/bitmask.hpp

    Only external dependency is boost/cstdint.hpp, either move to "common",
or else move cstdint.hpp to "config".

boost/detail/call_traits.hpp

    Move to call_traits (should be there already).

boost/detail/catch_exceptions.hpp

    Only external dependency is boost/cstdint.hpp, suggest latter is moved
to config.

boost/detail/compressed_pair.hpp

    Move to compressed pair (should be there already).

boost/detail/endian.hpp

    Move to "predef"

boost/detail/has_default_constructor.hpp

    File appears to be unused, and not very useful, suggest we remove it.

boost/detail/identifier.hpp

    File appears to be unused, suggest we remove it.

boost/detail/indirect_traits.hpp

    Used by iterator and python, move to "common"

boost/detail/is_incrementable.hpp

    Move to common, or better modify the libraies using this to use the
newer type_traits equivalents.

boost/detail/is_sorted.hpp

    Used by graph and range, move to "common"

boost/detail/is_xxx.hpp

    Used by parameter and python, move to "common"

boost/detail/iterator.hpp

    I suspect this may be obsolete now compiler requirements have been
bumped, but whatever it's still used by multiple libs: move to "common"

boost/detail/lcast_precision.hpp

    Only used by lexical_cast, move it there.

boost/detail/lightweight_mutex.hpp

    Only extern dependency is smart_ptr's details, suggest move those to
detail.

boost/detail/named_template_params.hpp

    Appears to be unused, suggest we remove.

boost/detail/numeric_traits.hpp

    Used by graph and iterator, move to "common"

boost/detail/ob_compressed_pair.hpp

    Move to compressed pair, might also be obsolete by now.

boost/detail/quick_allocator.hpp

    Only external dependency is smart_ptr's details, suggest those are moved
here. Or since only serialization uses this, move this file there...

boost/detail/reference_content.hpp

    Used by optional and variant, move to "common".

boost/detail/winapi/*

    Depends on boost/cstdint.hpp only, suggest that belongs to config.

Everything else in detail has no dependencies other than config.

Thoughts?

John.


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