Boost logo

Boost :

From: Beman Dawes (bdawes_at_[hidden])
Date: 2002-09-19 12:26:12


For 1.29.0, the header dependency analysis has been marked "Sorry, not
available at this time."

The problem is that headers dependencies have gotten completely
out-of-hand. For example, two years ago in 1.18.0, type_traits.hpp had
seven dependencies listed. One year ago, in 1.25.0, type_traits.hpp had 24
dependencies. In 1.29.0, that has grown to 153 dependencies. See below.

Multiply that by the number of boost headers that use type_traits.hpp (and
other headers that now have a huge number of dependencies), and the current
header dependency analysis becomes unusable because of great size.

Beyond that, I think we can easily get into a major public perception
headache by letting header dependencies grow in an unbounded fashion.

Comments?

--Beman

   boost/type_traits/add_const.hpp
     boost/config.hpp
       boost/config/select_compiler_config.hpp
       boost/config/select_platform_config.hpp
         boost/config/posix_features.hpp
           unistd.h
       boost/config/select_stdlib_config.hpp
         utility
       boost/config/suffix.hpp
         cstddef
         limits.h
     boost/type_traits/detail/type_trait_def.hpp
       boost/mpl/aux_/lambda_support.hpp
         boost/mpl/aux_/config/lambda_support.hpp
           boost/mpl/aux_/config/ttp.hpp
         boost/mpl/aux_/preprocessor/params.hpp
           boost/preprocessor/comma_if.hpp
             boost/preprocessor/punctuation/comma_if.hpp
               boost/preprocessor/config/config.hpp
               boost/preprocessor/control/if.hpp
                 boost/preprocessor/control/iif.hpp
                 boost/preprocessor/logical/bool.hpp
               boost/preprocessor/facilities/empty.hpp
               boost/preprocessor/punctuation/comma.hpp
           boost/preprocessor/repeat.hpp
             boost/preprocessor/repetition/repeat.hpp
               boost/preprocessor/detail/auto_rec.hpp
               boost/preprocessor/tuple/eat.hpp
         boost/preprocessor/cat.hpp
         boost/preprocessor/inc.hpp
           boost/preprocessor/arithmetic/inc.hpp
         boost/preprocessor/list/for_each_i.hpp
           boost/preprocessor/list/adt.hpp
             boost/preprocessor/detail/is_binary.hpp
               boost/preprocessor/detail/check.hpp
             boost/preprocessor/logical/compl.hpp
           boost/preprocessor/repetition/for.hpp
             boost/preprocessor/repetition/detail/edg/for.hpp
             boost/preprocessor/repetition/detail/for.hpp
               boost/preprocessor/control/expr_iif.hpp
             boost/preprocessor/repetition/detail/msvc/for.hpp
           boost/preprocessor/tuple/elem.hpp
           boost/preprocessor/tuple/rem.hpp
         boost/preprocessor/tuple/to_list.hpp
       boost/type_traits/detail/template_arity_spec.hpp
         boost/mpl/aux_/config/overload_resolution.hpp
         boost/mpl/aux_/template_arity_fwd.hpp
     boost/type_traits/detail/type_trait_undef.hpp
   boost/type_traits/add_cv.hpp
   boost/type_traits/add_pointer.hpp
   boost/type_traits/add_reference.hpp
   boost/type_traits/add_volatile.hpp
   boost/type_traits/alignment_of.hpp
     boost/type_traits/detail/size_t_trait_def.hpp
       boost/mpl/size_t_c.hpp
         boost/mpl/integral_c.hpp
     boost/type_traits/detail/size_t_trait_undef.hpp
   boost/type_traits/has_nothrow_assign.hpp
     boost/type_traits/detail/bool_trait_def.hpp
       boost/mpl/bool_c.hpp
     boost/type_traits/detail/bool_trait_undef.hpp
   boost/type_traits/has_nothrow_constructor.hpp
   boost/type_traits/has_nothrow_copy.hpp
   boost/type_traits/has_nothrow_destructor.hpp
   boost/type_traits/has_trivial_assign.hpp
     boost/type_traits/config.hpp
       type_traits.h
     boost/type_traits/detail/ice_and.hpp
     boost/type_traits/detail/ice_not.hpp
     boost/type_traits/detail/ice_or.hpp
   boost/type_traits/has_trivial_constructor.hpp
   boost/type_traits/has_trivial_copy.hpp
   boost/type_traits/has_trivial_destructor.hpp
   boost/type_traits/is_POD.hpp
   boost/type_traits/is_arithmetic.hpp
   boost/type_traits/is_array.hpp
     boost/type_traits/detail/wrap.hpp
     boost/type_traits/detail/yes_no_type.hpp
   boost/type_traits/is_base_and_derived.hpp
   boost/type_traits/is_class.hpp
   boost/type_traits/is_compound.hpp
   boost/type_traits/is_const.hpp
     boost/type_traits/detail/cv_traits_impl.hpp
     boost/type_traits/detail/false_result.hpp
   boost/type_traits/is_convertible.hpp
   boost/type_traits/is_empty.hpp
   boost/type_traits/is_enum.hpp
   boost/type_traits/is_float.hpp
   boost/type_traits/is_function.hpp
     boost/type_traits/detail/is_function_ptr_helper.hpp
       boost/preprocessor/enum_params.hpp
         boost/preprocessor/repetition/enum_params.hpp
       boost/preprocessor/iterate.hpp
         boost/preprocessor/iteration/iterate.hpp
           boost/preprocessor/arithmetic/dec.hpp
           boost/preprocessor/array/elem.hpp
             boost/preprocessor/array/data.hpp
           boost/preprocessor/array/size.hpp
           boost/preprocessor/slot/slot.hpp
             boost/preprocessor/slot/detail/def.hpp
     boost/type_traits/detail/is_function_ptr_tester.hpp
   boost/type_traits/is_fundamental.hpp
   boost/type_traits/is_integral.hpp
   boost/type_traits/is_member_function_pointer.hpp
     boost/type_traits/detail/is_mem_fun_pointer_impl.hpp
     boost/type_traits/detail/is_mem_fun_pointer_tester.hpp
   boost/type_traits/is_member_pointer.hpp
   boost/type_traits/is_object.hpp
   boost/type_traits/is_pointer.hpp
   boost/type_traits/is_reference.hpp
     boost/type_traits/detail/is_function_type_tester.hpp
   boost/type_traits/is_same.hpp
   boost/type_traits/is_scalar.hpp
   boost/type_traits/is_stateless.hpp
   boost/type_traits/is_union.hpp
   boost/type_traits/is_void.hpp
   boost/type_traits/is_volatile.hpp
   boost/type_traits/remove_bounds.hpp
   boost/type_traits/remove_const.hpp
     boost/type_traits/broken_compiler_spec.hpp
   boost/type_traits/remove_cv.hpp
   boost/type_traits/remove_pointer.hpp
   boost/type_traits/remove_reference.hpp
   boost/type_traits/remove_volatile.hpp
   boost/type_traits/type_with_alignment.hpp
     boost/mpl/if.hpp
       boost/mpl/aux_/value_wknd.hpp
       boost/mpl/aux_/void_spec.hpp
         boost/mpl/aux_/arity.hpp
         boost/mpl/aux_/config/dtp.hpp
         boost/mpl/aux_/preprocessor/def_params_tail.hpp
           boost/mpl/aux_/preprocessor/filter_params.hpp
           boost/mpl/aux_/preprocessor/sub.hpp
             boost/mpl/aux_/preprocessor/tuple.hpp
           boost/mpl/limits/arity.hpp
           boost/preprocessor/arithmetic/add.hpp
             boost/preprocessor/control/while.hpp
               boost/preprocessor/control/detail/edg/while.hpp
               boost/preprocessor/control/detail/msvc/while.hpp
               boost/preprocessor/control/detail/while.hpp
               boost/preprocessor/debug/error.hpp
               boost/preprocessor/list/fold_left.hpp
                 boost/preprocessor/list/detail/edg/fold_left.hpp
                 boost/preprocessor/list/detail/fold_left.hpp
               boost/preprocessor/list/fold_right.hpp
                 boost/preprocessor/list/detail/edg/fold_right.hpp
                 boost/preprocessor/list/detail/fold_right.hpp
                   boost/preprocessor/list/reverse.hpp
               boost/preprocessor/logical/bitand.hpp
           boost/preprocessor/arithmetic/sub.hpp
         boost/mpl/aux_/preprocessor/enum.hpp
         boost/mpl/void.hpp
     boost/static_assert.hpp
--- end ---


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