|
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