
On 2/26/2011 4:21 AM, Frédéric Bron wrote:
Have you looked for compound traits in other libraries that could be added to TypeTraits for convenience? That is, if it is very common to combine certain traits, then a single trait that captures the compound would simplify a good deal of code.
I do not think you should worry too much about what else exists right now as long as you feel you have a complete set of operators, which should be the main focus of your library as I see it. There can be time enough if your library gets accepted into Boost for other implementers of type traits like extensions to use your operators instead of what they had been using in order to avoid redundancy. It's not your job to delay finishing your work in any way to worry about redundancies in all other Boost libraries.
No I have not. what about is_voidstar? I am using this a lot in my addition. Would it be meaningful to add this?
I checked a bit more for duplicates: * these are duplicate: . boost/detail/has_default_constructor.hpp and boost/type_traits/has_trivial_constructor.hpp . boost/type_traits/is_float.hpp and boost/type_traits/is_floating_point.hpp (is_float is not in the documentation)
* these would be nice to have in type_traits . boost/mpl/has_xxx.hpp
These are in my TTI library as BOOST_TTI_HAS_TYPE and BOOST_TTI_HAS_TEMPLATE.
. boost/mpl/math/is_even.hpp . boost/icl/type_traits/is_container.hpp . boost/icl/type_traits/is_numeric.hpp
* are these duplicates? . boost/ptr_container/detail/is_convertible.hpp and boost/ptr_container/detail/is_convertible.hpp . boost/icl/type_traits/is_discrete.hpp and boost/type_traits/is_scalar.hpp . boost/preprocessor/facilities/is_empty.hpp and boost/type_traits/is_empty.hpp . is_member_function_pointer.hpp in boost/function_types and boost/type_traits . is_member_object_pointer.hpp in boost/function_types and boost/type_traits . is_member_pointer.hpp in boost/function_types and boost/type_traits
* will be part of the type trait extension . boost/detail/is_incrementable.hpp -> has_operator_prefix_increment<T> and has_operator_postfix_increment<T> . boost/exception/detail/is_output_streamable.hpp -> has_operator_left_shift<OStream, T>