Le 07/06/14 20:00, Peter Dimov a écrit :
Andrey Semashev wrote:
Pulling type traits to Core doesn't sound good, it's better to create a separate submodule for it.
I think that you misunderstand. I do not intend to put type traits in Core. The is_pointer definition in the example is part of the test for bool_. It demonstrates that bool_ can dispatch without it being coupled to the definition of the trait - which can come from core_type_traits, from std, or from a user specialization.
Which library needs bool_ in Core? IMO, what we need is integral_constant in Core and import it to Boost. //boost/core/intergral_constant.hpp namespace boost { namespace core { template <..> struct integral_constant {... }; } } //boost/type_traits/intergral_constant.hpp namespace boost { using core::integral_constant; } Note that the current implementation of integral_constant using mpl::integral_c is not documented, so the changes are backward compatible (Of course, the user or Boost code that is using the implementation detail would be broken). This doesn't needs a change in MPL at all. What are the drawbacks of this solution? Vicente